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");
  |-…

在这种情况下,数组的不同元素可以具有相同的属性,例如在上面发布的代码中-“ item 3 ”具有“ property 2 ”与“ item 1 ”中的相同,并且“ property 3 ” 与“第 2 项”中的相同

请告诉我,如何最好地做到这一点,如果不难,请写一个简单的例子或一些教程的链接。

先感谢您)

4

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

听起来你想要一个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];

如果您想稍后更新它,那么您应该分别使用NSMutableDictionaryNSMutableArray

如果您release使用 ARC,则在使用完它们时需要对象。

于 2012-11-25T10:50:12.610 回答