Iveは可能な組み合わせで何時間も試してみましたが、これを動作させることはできません。タイプ 'any'には添え字メンバーがありません。
私の機能:
func allItems() -> [TodoItem] {
let todoDictionary = UserDefaults.standard.dictionary(forKey: ITEMS_KEY) ?? [:]
let items = Array(todoDictionary.values)
return items.map({TodoItem(
deadline: $0["deadline"] as! Date,
title: $0["title"] as! String,
UUID: $0["UUID"] as! String!,
description: $0["description"] as! String,
imageSavePath: ($0["imageSavePath"] as! String),
isItComplete: $0["isItComplete"] as! Bool
)}).sorted(by: {(left: TodoItem, right:TodoItem) -> Bool in
(left.deadline.compare(right.deadline) == .orderedAscending)
})
}
はどれが 'は添字のメンバーを持っていない私にエラー「タイプ' を与えます。 私が研究して変更しようとしている:
func allItems() -> [TodoItem]
func allItems() -> [Any:[TodoItem]]
には、しかし、これは「任意のプロトコルをハッシュ化するために適合していない型」というエラーが発生します。これは下がる正しい線ですか?
私のMacBookがウィンドウの外に出る前に助けてください.....!
が設計ミスではないですか?辞書は、キーと値のペアを持つオブジェクトです。あなたのマッピングは、各** value **がそれ自体私が疑う辞書です。 – vadian
実際に何を返そうとしていますか、配列か辞書ですか? – Alexander
これは、スウィフト3.0の前に完全に機能したので、これは設計ミスではないと思います。目的は、DueDateでソートされた 'ToDoItems'の配列を返すことです。 – MartynE23