for (i= 0; i < 10; i++) { NSNumber *newNumber = [[NSNumber alloc] initWithInt:(i * 3)]; [array addobject:newNumber];}
我的问题是为什么你要创建NSNumber的实例来添加到数组而不是只是一个整数变量.看起来这只是额外的开销,可以避免每个循环创建一个新实例.但我确信作者知道他们在做什么,并且有理由,有人可以解释一下吗?
解决方法 NSArray只能保存对象,而不能保存原始类型. NSNumber和NSValue用于在对象中包装原始类型,因此它们可以存储在基础集合中,如NSArray,NSDictionary和NSSet(以及它们的可变/有序对应物).正如Peter Hosey在评论中指出的那样:总结The common term for this is “Boxing” (as in Boxing them up),and the inverse — extracting the primitive value from a Box object — is unBoxing.
以上是内存溢出为你收集整理的objective-c – NSAumber与NSArray的原始int全部内容,希望文章能够帮你解决objective-c – NSAumber与NSArray的原始int所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)