作者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