我正在尝试创建一个应用程序,其中我有一个数组(?),其中包含用户的名称和其他信息(2个字符串,3个整数)。我还希望用户指定应用程序可以容纳多少个名称。
我想知道我该怎么做?我想知道我是否可以使用多维数组。
由于
答案 0 :(得分:4)
听起来你想要的是一个User
类,每个用户拥有的属性,以及一组数组。
答案 1 :(得分:1)
您可以使用包含项目的NSDictionaries的NSMutableArray。
NSMutableArray *array = [NSMutableArray array];
NSString *name = @"Name ";
NSString *value1 = @"Value 1";
int value2 = 2;
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
name, @"name",
value1, @"value1Name",
[NSNumber numberWithInt:value2], @"value2Name",
nil];
[array addObject: dict];
//创建更多的词典,因为有更多的项目并将它们添加到数组
答案 2 :(得分:1)
如前所述,您最好的选择是添加一个类来保存信息,然后将每个对象添加到NSArray中(以下是一个示例):
@interface User : NSObject
{
NSString *string1;
NSString *string2;
int int1;
int int2;
int int3;
}
@property (nonatomic, retain) NSString *string1;
@property (nonatomic, retain) NSString *string2;
@property (nonatomic) int int1;
@property (nonatomic) int int2;
@property (nonatomic) int int3;
@end
@implementation User
@synthesize string1, string2, int1, int2, int3;
// Add init and dealloc methods here
@end
// creating objects somewhere else in the code
User *userObj1 = [[User alloc] init];
User *userObj2 = [[User alloc] init];
userObj1.string1 = @"User1";
userObj1.int1 = 7;
NSArray *arrayOfUserObjects =
[[NSArray alloc] initWithObjects: userObj1, userObj2, nil];
[userObj1 release];
[userObj2 release];
// do stuff with array with User Objects
答案 3 :(得分:0)
是的,无论是自定义类还是字典。或者如果您愿意,可以使用另一个数组而不是字典。使用NSArray,您可以将任何其他Objective-C对象作为元素,包括其他NSArrays,NSDictionarys或您自己的自定义类的对象。 (您可以使用NSObject指针数组执行相同的操作,但NSArray可以很好地为您处理保留。)