原始数据类型与非原始数据类型(苹果定义的数据类型)之间有什么区别?

Ank*_*ava -4 iphone objective-c primitive-types nsinteger ios

这两者之间的基本区别是什么?如果有人能够解释使用NSInteger和NSNumber的例子,那将是很好的.谢谢

ale*_*oot 10

主要区别在于它们保留在内存中的位置,对象存储在堆中,而值类型直接存储在堆栈中...

heap:是用于动态内存分配的内存区域.

stack:是为函数内的自动变量分配的内存部分.使用后进先出(LIFO)方法将数据存储在堆栈中.

关于NSInteger和NSNumber:

NSInteger只不过是一个长整数的同义词,而NSNumber是一个Objective-C类,NSValue的子类是特定的.


Wub*_* Li 8

对象是:对数据进行操作的成员数据+功能

所以,原始数据类型只是数据,没有与之直接相关的方法.

对象就像一个模块,包括数据和函数(这里的方法).

NSInteger是原始数据类型.NSNumber是对象,它的成员数据可能是NSInteger.