【发布时间】:2010-02-03 06:59:25
【问题描述】:
我需要将一些整数值存储为数组的内容。但是当我尝试这样做时,它会发出警告, 传递 'addObject' 的参数 1 使指针从整数而不进行强制转换。 显然该值没有存储在数组中。 这是代码。
NSUInteger i;
for (i=0;i<5;i++){
[array addObject:i];}
【问题讨论】:
我需要将一些整数值存储为数组的内容。但是当我尝试这样做时,它会发出警告, 传递 'addObject' 的参数 1 使指针从整数而不进行强制转换。 显然该值没有存储在数组中。 这是代码。
NSUInteger i;
for (i=0;i<5;i++){
[array addObject:i];}
【问题讨论】:
NSArray-s 不能存储非id 对象。你必须把它装箱成NSNumber:
NSUInteger i;
for (i=0;i<5;i++) {
[array addObject:[NSNumber numberWithUnsignedInteger:i]];
}
或者使用带有自定义回调的CFArray(但是为了性能牺牲了可读性),或者使用std::vector<NSUInteger>(但是你需要使用Objective-C++)。
【讨论】:
NSNumber 和-unsignedIntegerValue 获得NSUInteger。