首页 新闻 会员 周边

NSString的内存是否泄露

0
悬赏园豆:5 [待解决问题]

 NSString *str =[[NSString alloc]initWithString:@"abc"]; 

 str = @"def"; 
 
     
  NSLog(@"%@",str); 
   [str release]; 
 
在这里,str指针首先指向了abc分配这款内存,然后赋予了它一个常量,这个时候str应该指向def,且abc这块内存任然存在,,所以回收不到.应该内存泄露.! 
可用instumenrs发现内存并没有泄露,这是为什么?

是否存在内存泄露呢?  

hopeanCom的主页 hopeanCom | 初学一级 | 园豆:199
提问于:2012-10-30 11:25
< >
分享
所有回答(3)
-3

理论上泄露了,实际上没泄露

[[NSString alloc]initWithString:@"abc"]; 这个NSString应该要release的。但是因为NSString是unmuatable的,所以str和@"abc"指向同一个对象基本上没有分配内存,所以即使是release,也不做任何事情的。

Greatest | 园豆:678 (小虾三级) | 2012-10-30 12:58
0

泄露

chenzhuolin1002 | 园豆:216 (菜鸟二级) | 2012-11-04 17:06
0

泄露了NSString *str =[[NSString alloc]initWithString:@"abc"]; alloc的引用计数+1,

str = @"def";[NSString alloc]的内存是没有指针指向,所以内存泄露

 

 
新年新气象 | 园豆:210 (菜鸟二级) | 2015-11-17 16:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册