如何读取整数数组?

时间:2010-01-26 17:55:03

标签: iphone objective-c

NSMutableArray *Number=[NSArray arrayWithObjects: @"1", @"2", @"3", @"4", @"5", @"6", nil];

我有一个整数数组,需要逐个读取它们。 谁能告诉我如何编码呢?​​

3 个答案:

答案 0 :(得分:9)

实际上,你有一系列NSStrings。

另请注意,将NSArray实例分配给NSMutableArray *引用没有多大意义。

无论如何,你可以:

for(NSString *foo in numberArray) {
    int i = [foo intValue];
    ....
}

请注意,您应该命名以小写字母开头的变量。防止与类名混淆和冲突(如果您想稍后创建名为Number的类,该怎么办?)。

答案 1 :(得分:1)

这是枚举数组的方式,NSArray是不可变的整数:

NSArray * numbers = [NSArray arrayWithObjects:[NSNumber numberWithInt:1],
                                              [NSNumber numberWithInt:2],
                                              [NSNumber numberWithInt:4],
                                              [NSNumber numberWithInt:5],
                                              [NSNumber numberWithInt:6],
                                              [NSNumber numberWithInt:7],
                                              nil];
// now print out
id obj;
NSEnumerator * enumerator;

enumerator = [numbers objectEnumerator];
while ((obj = [enumerator nextObject])) NSLog(@"%@", obj);

这是如何动态地将整数添加到数组NSMutableArray(然后打印数组):

NSLog(@"\ndynamically add integers:");

NSMutableArray * num2 = [[NSMutableArray alloc] init];
int i;
for ( i = 0; i < 10; ++i) [num2 addObject:[NSNumber numberWithInt:i]];

// now print out
enumerator = [num2 objectEnumerator];
while ((obj = [enumerator nextObject])) NSLog(@"%@", obj);

两者的输出:

2010-01-27 14:51:40.307 x[5566] 1
2010-01-27 14:51:40.308 x[5566] 2
2010-01-27 14:51:40.308 x[5566] 4
2010-01-27 14:51:40.308 x[5566] 5
2010-01-27 14:51:40.308 x[5566] 6
2010-01-27 14:51:40.308 x[5566] 7
2010-01-27 14:51:40.308 x[5566]
dynamically add integers:
2010-01-27 14:51:40.308 x[5566] 0
2010-01-27 14:51:40.308 x[5566] 1
2010-01-27 14:51:40.308 x[5566] 2
2010-01-27 14:51:40.308 x[5566] 3
2010-01-27 14:51:40.308 x[5566] 4
2010-01-27 14:51:40.308 x[5566] 5
2010-01-27 14:51:40.308 x[5566] 6
2010-01-27 14:51:40.308 x[5566] 7
2010-01-27 14:51:40.308 x[5566] 8
2010-01-27 14:51:40.309 x[5566] 9

答案 2 :(得分:0)

除此之外你应该使用:

NSMutableArray *numStrings=[NSMutableArray arrayWithObjects: @"1", @"2", @"3", @"4", @"5", @"6", nil];

编译器将允许您将NSArray分配给NSMutableArray,但如果您尝试向其发送NSMutableArray特定消息,则可能会崩溃。