objective-c – NSAumber与NSArray的原始int

objective-c – NSAumber与NSArray的原始int,第1张

概述我正在使用第四版 Cocoa Programming for Mac OSX学习Objective-C/C++ocoa.我为基本问题道歉,但我是那些真正需要了解所有内容的人之一,以便对我有意义,而本书并不总能满足我的需求.我已经掌握了C的基础知识,现在我正在学习Obj-C,这是我的背景.这是我正在学习的一段代码…… for (i= 0; i < 10; i++) { NSNumber *n 我正在使用第四版 Cocoa Programming for Mac OSX学习Objective-C/C++ocoa.我为基本问题道歉,但我是那些真正需要了解所有内容的人之一,以便对我有意义,而本书并不总能满足我的需求.我已经掌握了C的基础知识,现在我正在学习Obj-C,这是我的背景.这是我正在学习的一段代码……

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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1006812.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存