2

-setValue:forKey:関数を使用して値を取得しようとしています-valueForKey:

例:

NSArray *rootarr = [[NSArray alloc] init];
NSArray *array = [[NSArray alloc] initWithObjects:@"name", @"address", @"title", nil];
[rootarr setValue:array forKey:@"n"];
NSArray *getArr = [rootarr valueForKey:@"n"];

しかし、取得した getArr 配列は、設定した配列 (配列) と等しくありません。

私が会った何が悪いのか教えてください。そして、これらの機能を使用する方法は何ですか?

4

4 に答える 4

5

NSArraysetValue:forKey:メソッドは、配列を連想コンテナーとして使用するためではなく、Key Value Codingに使用されます。を使用する必要がありますNSMutableDictionary

NSMutableDictionary *rootDict = [NSMutableDictionary dictionary];
NSArray *array = [[NSArray alloc] initWithObjects:@"name", @"address", @"title", nil];
[rootDict setValue:array forKey:@"n"];
NSArray *getArr = [rootDict valueForKey:@"n"];
于 2012-05-17T01:43:32.137 に答える
0

配列はキー値ストアではなく、それを使用したいと思われます。代わりに NSDictionary が必要だと思います(作成後に変更する場合は、より正確には NSMutableDictionary )。

于 2012-05-17T01:43:36.780 に答える
-1

作成後ににオブジェクトを追加することはできませんNSArray。そのためには使用NSMutableArrayする必要があります。

于 2012-05-17T01:42:48.857 に答える