作者lazyasa (asa)
看板MacDev
标题[问题] 新手一个问题
时间Thu Oct 3 22:51:23 2013
各位大大好
因为觉得观念不太好
又重新去做了一些练习
然後有一个地方搞不懂
NSString *string = @“abc”;
跟
NSString * string = [[NSString alloc] init];
string = @"abc";
有两个什麽不一样呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.132.74.160
1F:→ darktt:第一个是auto release物件,第二个是manual release物件 10/04 06:40
2F:→ darktt:不过这一切是要在non-ARC模式下才成立。 10/04 06:41
3F:→ uranusjr:这篇文章三行程式里没有任何一个物件会被 auto release.. 10/04 08:57
4F:→ yuanruo:@"" 是一个 compile-time constant 在编译时就被写入mem 10/04 19:54
5F:→ yuanruo:所以你不用去管他retain或是release 10/04 19:55
6F:→ sorkayi:在arc下是一样的@@? 10/04 23:26
7F:推 issuemylove:请问 NSString 有对 "=" 运算式做 overload吗? 10/05 03:51
8F:→ issuemylove:不然第二个我觉得是 string 先指到[NSString xxx]init 10/05 03:52
9F:→ issuemylove:然後又指到 @"abc" constant 10/05 03:52
10F:→ issuemylove:所以第一个在 non-ARC 的底下 发生leak 10/05 03:53
11F:→ issuemylove:不知道这样理解哪里有误 谢谢 10/05 03:54
12F:→ uranusjr:Objective-C 没有 operator overloading 这种东西 10/05 11:24