对象软件生存周期模型问题

主题 : 对象的生命周期问题
级别: 新手上路
可可豆: 83 CB
威望: 83 点
在线时间: 37(时)
发自: Web Page
来源于&&分类
对象的生命周期问题&&&
   NSString *a = [[[NSString alloc] init]autorelease];    a = @&123&;     NSString *ac = [[NSString alloc] init];    ac = @&456&;    ac =   如上列代码,1变量ac被改变了。那原先指向的地址空间,会被释放么?还是就内存泄露了。      2在objc中,这样赋值行么
级别: 精灵王
发帖: 1124
可可豆: 1231 CB
威望: 1332 点
在线时间: 1327(时)
发自: Web Page
回 楼主(jy) 的帖子
&& NSString *a = [[[NSString alloc] init]autorelease];&&&&a = @&123&; 这个是绝对正确的方法下面那几句,理论上是不正确的会内存泄漏的,但是由于nsstring的内存管理方式跟其他类不一样,所以这么写也是可以的核心思想就是有内容才有分配内存所以实际上,你的a和ac都是没有独立内存空间的嘛,估计这么几句是看不懂的,有兴趣自己找相关东西看吧,还是推荐都按前面那样来写
级别: 圣骑士
可可豆: 1029 CB
威望: 1030 点
在线时间: 597(时)
发自: Web Page
回 楼主(jy) 的帖子
NSString *ac = [[NSString alloc] init];&&&&ac = @&456&;这样前面init出来的内存会泄露吧。。因为他需要你手动释放,而你在后面将指向该内存的ac指向了456的地址。。。
级别: 精灵王
发帖: 1124
可可豆: 1231 CB
威望: 1332 点
在线时间: 1327(时)
发自: Web Page
回 2楼(dulllight) 的帖子
申请出来的ac是没地址的,456也是没地址的
级别: 圣骑士
可可豆: 1029 CB
威望: 1030 点
在线时间: 597(时)
发自: Web Page
回 3楼(forbertl) 的帖子
[[NSString alloc] init];这样申请出来的对象必须自己销毁,系统是不负责销毁的
级别: 精灵王
发帖: 1124
可可豆: 1231 CB
威望: 1332 点
在线时间: 1327(时)
发自: Web Page
回 4楼(dulllight) 的帖子
我只是说,NSString *ac = [[NSString alloc] init];&&&&ac = @&456&;&&&&ac =这样写出来的东西,ac是没有被分配内存空间的,如果你不明白,可以去看看关于nsstring的内存管理相关资料
关注本帖(如果有新回复会站内信通知您)
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 关注CVP公众号
扫一扫 浏览移动版博主最新文章
博主热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)cache file NOT exists!博主最新文章
博主热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 spring对象生存周期 的文章

 

随机推荐