2012-02-06 15 views
0

Root.plistキーの値をNSArrayに読み込もうとしているので、App設定のテーブルビューに値を設定できます。NSUserdefaultsをNSArrayに読み込み

NSArray *arrayCountry = [[NSUserDefaults standardUserDefaults] arrayForKey:@"country"]; 
NSLog(@"Number of items in array >>>>>> %d", arrayCountry.count); 

のNSLogを返します:私は、キー "国" の値を取得するには、次のコードを使用しています

配列内の項目の

数>>>>>> 0

私は同じキーで別のキーを試しましたが、同じ結果が得られます。

誰でもこの問題を解明できますか?私はここで何かを見逃しましたか?

答えて

1

arrayCountrynilでないことを確認してください。そうであれば、arrayCountry.countはnilであってもゼロを返します。

これを試してみてください:

NSUserDefaults* std = [NSUserDefaults standardUserDefaults]; 
[std setObject:[NSArray arrayWithObjects:@"US",@"GB",@"CN",nil] forKey:@"country"]; 
NSArray *arrayCountry = [std arrayForKey:@"country"]; 
if(arrayCountry == nil){ 
    NSLog(@"Something's strange in the neighborhood."); 
}else{ 
    NSLog(@"Number of items in array >>>>>> %d", arrayCountry.count); 
} 
+0

注standardUserDefaults' 'のインスタンスを作成することは少ないタイピングのための利便性に過ぎないこと - あなたは' [NSUserDefaults standardUserDefaults] 'すぎ – Tim

+0

でどこでも' std'を交換した場合それが働くだろうありがとうTim、@ "CN"の後に "、nil"を追加するとコードが動作します。私の場合、Xcodeでキーを作成し、コードを読み込もうとしましたが、アイテムが追加されているが、なぜそれがゼロでないのかわかりませんでした。 – majarmeh

+0

固定しました。私はちょうど急いで基本的な配列を作ることを試みていた。 – Tim

関連する問題