NSNumber包装int,返回错误的int,Objective-C

时间:2013-01-23 05:46:20

标签: objective-c nsmutablearray nsnumber

我需要在数组中存储一个int,我尝试这种方式,将int转换为NSNumber,但integer最终为136894816 ...有人可以帮我解决这个问题吗?

        NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:5];
        NSNumber *num = [NSNumber numberWithInt:10];
        [array insertObject:num atIndex:0];

        int integer = [array objectAtIndex:0];

2 个答案:

答案 0 :(得分:5)

NSNumber不是int。您在当前代码中检索的是内存引用。试试这个:

int value = [[array objectAtIndex: 0] intValue];

答案 1 :(得分:1)

尝试

NSNumber* xWrapped = [NSNumber numberWithInt:integer];

    [array_name addObject:xWrapped];