处理阵列中的多个字符串和Ints

时间:2011-09-24 19:11:47

标签: iphone objective-c ios multidimensional-array nsmutablearray

我正在尝试创建一个应用程序,其中我有一个数组(?),其中包含用户的名称和其他信息(2个字符串,3个整数)。我还希望用户指定应用程序可以容纳多少个名称。

我想知道我该怎么做?我想知道我是否可以使用多维数组。

由于

4 个答案:

答案 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可以很好地为您处理保留。)