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");
|-…
在这种情况下,数组的不同元素可以具有同一个属性,例如在上面发布的代码中 - “第3项”具有“属性2 “与”第1项“相同,”属性3 “与”第2项“相同
请告诉我,如何做到最好,如果不是很困难,请写一个简单的示例或链接到一些教程。
提前谢谢)
答案 0 :(得分: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];
}
答案 1 :(得分:1)
听起来你想要NSArray
个NSDictionary
个对象:
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
个对象。