2016-04-27 12 views
0

のNSDictionaryのを返します。 。しかし、このNSDictionaryをNSArrayに取得する簡単な方法があればOKです(データが渡される他のいくつかのクラスでは必要です)。NSUserDefaultsは、これは私がNSArrayの保存方法です代わりにNSArray

NSArrayを格納する方法に問題がありますか? BTW:キーがStringである配列。 String:AnyObjectのようなもの。

ありがとうございます!

ベスト ステファン

+0

thx ericですが、アイテム自体を保存したいのですが、IDはnsuserdefaults内のオブジェクトの固有の名前を持つことです。 – SteMa

+1

私は意味: "データ"は配列、 "項目"は辞書です...:p – Moritz

+0

あなたは辞書としてこれを保存していますが、どのように配列として取り出すことができます! – Lion

答えて

2

私はあなたがdefaults.dictionaryForKeyを使用しなければならない理由です、(あなたのitem辞書であるため)、あなたのオブジェクトはユーザデフォルトにうまく設定されていますが、ユーザデフォルトに辞書を保存していると思います。あなたは

defaults.setObject(data as NSArray, forKey: "Some key"); 
+0

あなたは完全に正しいです、アイテムはNSDictionaryです。 "私はNSArrayとしてデータ内のアイテムを考えました" はNSArrayにアイテムをキャストします。それは欠陥だった。ありがとう! – SteMa

1

if let id = item["id"] as? String 

は非常に疑うあるラインを使用して配列全体を格納することができます。どのように配列アイテムがキー "id"から値を生成することができますか?だから私はあなたが項目が配列か辞書かどうか分からないと思います。あなただけのためにこの行をユーザのデフォルトに保存しています

は成功です。それは間違ったアプローチです。これを明確にするために、以下のコードを試してください。

let mydictionary = NSMutableDictionary() 
    mydictionary.setValue("123", forKey: "abc") 
    let data = [mydictionary] 
    for item in data as NSArray { 
     if let id = item["id"] as? String { 

     } 
    } 

ここでは、NSMutableDictionaryをデータに格納しています。そしてそれは通り過ぎています

for item in data as NSArray 

私はあなたがうまくいけばいいと思います。