Objective C中的基本数据类型需要管理内存??? 如,int,float等,还有结构体

引用计数是针对对象的,那基本类型数据怎么办,它们在内存中是怎么生存的??求大神赐教!... 引用计数是针对对象的,那基本类型数据怎么办,它们在内存中是怎么生存的??求大神赐教! 展开
 我来答
paniarch
2015-03-03 · TA获得超过288个赞
知道小有建树答主
回答量:207
采纳率:0%
帮助的人:147万
展开全部
为对象添加引用计数功能,是因为对象一般比较大,不会频繁地申请释放,而且对象本身带有的数据基本上也需要存在一段时间,使用的时候也会把对象的引用传到各种地方,所以,为了方便在对象使用完毕后能自动释放内存所以加入引用计数。这是一种自动释放动态分配内存的方式,和数据类型无关。
不管什么数据类型,包括对象或结构或你所说的基本数据类型,都是要根据内存分配的方式来管理内存。就算是int,如果你通过malloc(这个是c里的啊,OC里不知道是什么)申请一个int,也是需要显示地释放的。如果不是系统自动分配的空间,比如自动变量,这个空间在变量的有效范围外是会自动释放的。
不知道有没有说清楚,哈哈哈
GHOUL荷兰人
推荐于2016-08-03 · TA获得超过1135个赞
知道小有建树答主
回答量:354
采纳率:100%
帮助的人:381万
展开全部
首先,你把问题想复杂了,Objective C虽然有了它独有的OC对象可以通过引用计数的方式来进行管理,但是,本身他还是继承了老的C的规律,也就是,你提到基本类型数据,所以,一直被诟病的内存管理的不足问题(混乱问题)尤其是基本类型数据,依然是存在的,因为你去定义这些类型对象,去调用的他还是老的办法,并没有多出个什么步骤来,不过你提到了这个问题的话
我建议你看看这个对你是否有用
int,NSInteger,NSUInteger,NSNumber
1.当需要使用int类型的变量的时候,可以像写C的程序一样,用int,也可以用NSInteger,但更推荐使用NSInteger,因为这样就不用考虑设备是32位的还是64位的。
2.NSUInteger是无符号的,即没有负数,NSInteger是有符号的。
3.有人说既然都有了NSInteger等这些基础类型了为什么还要有NSNumber?它们的功能当然是不同的。
NSInteger是基础类型,但是NSNumber是一个类。如果想要在NSMutableArray里存储一个数值,直接用NSInteger是不行的
注:objective c毕竟是C的衍生产物,如果她将int 、float这些基本数据类型的管理方式,不是继承,而是全部改为OC那样的话,就是全部颠覆了,它就可以称之为新的语言了。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式