3

各要素が多数のプロパティを持つ配列を作成する方法を教えてください。例えば:

array:
  |
  |-item 1 ( property_1-"Name1", property_2-"LastName1", property_3-"Age1");
  |-item 2 ( property_1-"Name2", property_2-"LastName2", property_3-"Age2");
  |-item 3 ( property_1-"Name3", property_2-"LastName1", property_3-"Age2");
  |-…

この場合、配列のさまざまな要素は、上記のコードのように、1 つの同じプロパティを持つことができます。「アイテム 3」には「プロパティ 2 」があり、「アイテム 1」と「プロパティ 3」は同じです。 " は "項目 2 "と同じです。

それを行う最善の方法を教えてください。難しくない場合は、簡単な例またはチュートリアルへのリンクを書いてください。

前もって感謝します)

4

2 に答える 2

2

私が提案する2つの方法があります:

1.クラスを使用してすべてのプロパティを保存します

次に例を示します。

@interface Wrapper : NSObject

@property (nonatomic, assign) NSString* property_1;
@property (nonatomic, assign) NSString* property_2;
@property (nonatomic, assign) NSString* property_3;

@end

次に、それを辞書として使用できます。

NSString* value=[myWrapperInstance valueForKey: @"property_1"];

しかし、ここに代替ソリューションがあります。

1. NSDictionaryを使用して、すべてのプロパティを保存します

NSDictionary* dict= @{ @"property_1" : @"Name1" ,@"property_2" : @"Name2",  @"property_3" : @"Name3" };

そうすれば、解決策は簡単になります。

NSMutableArray* objects=[NSMutableArray new];
for(int i=0; i<N; i++)
{
    NSDictionary* dict= @{ @"property_1" : @"Name1" ,@"property_2" : @"Name2",  @"property_3" : @"Name3" };
    [objects addObject: dict];
}
于 2012-11-25T10:54:06.753 に答える
1

オブジェクトが必要なようですNSArrayNSDictionary

NSDictionary *dict1 = [NSDictionary dictionaryWithObjectsAndKeys:@"Name1", @"property_1", @"LastName1", @"property_2", @"Age1", @"property_3", nil);
NSDictionary *dict2 = [NSDictionary dictionaryWithObjectsAndKeys:@"Name2", @"property_1", @"LastName2", @"property_2", @"Age2", @"property_3", nil);
NSDictionary *dict3 = [NSDictionary dictionaryWithObjectsAndKeys:@"Name3", @"property_1", @"LastName3", @"property_2", @"Age3", @"property_3", nil);

NSArray *array = [NSArray arrayWithObjects:dict1, dict2, dict3, nil];

これを後で更新する場合は、それぞれNSMutableDictionaryとを使用する必要がありNSMutableArrayます。

ARCを使用していない場合は、使いrelease終わったときにオブジェクトを作成する必要があります。

于 2012-11-25T10:50:12.610 に答える