[問題] 奇怪的release現象

看板MacDev作者 (變笨中)時間14年前 (2011/01/03 13:25), 編輯推噓1(1010)
留言11則, 4人參與, 最新討論串1/1
iOS 4.1 sdk 我有個簡單的object 裡面有 a,b,c NSString, property@(retain,noatomic) 在dealloc裡 release這三個NSString 在simulator裡沒問題 在device上如果是用build and GO 也就是有debug message也沒問題 但是如果是單獨在device上run 就會crash 如果把這些NSString的release拿掉 就沒問題 這些NSString的來源是FMDB的result trace了一下 是用 const char * xx = ..... [NSString stringWithUTF8string:xx] 回傳出來的 請問各位 有沒有什麼想法或是實驗的方向可以做? property改成copy會比較適合這種情況嗎? 謝謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.222.246

01/03 14:20, , 1F
[NSString stringWithUTF8string:xx] 會autorelease吧
01/03 14:20, 1F

01/03 14:28, , 2F
留給 autorelease pool 就好了。
01/03 14:28, 2F

01/03 14:37, , 3F
請問一下 我的setter是retain那個string,所以不是應該要
01/03 14:37, 3F

01/03 14:37, , 4F
release他嗎?
01/03 14:37, 4F

01/03 15:38, , 5F
沒錯..你retain就要release...
01/03 15:38, 5F

01/03 15:38, , 6F
我猜是某個地方的bug 已經不小心把這個string release了
01/03 15:38, 6F

01/03 15:39, , 7F
你可以在release前..check retain count
01/03 15:39, 7F

01/03 15:44, , 8F
奇怪的是 為什麼只有device單獨run的時候才會crash?
01/03 15:44, 8F
※ 編輯: CharlieH 來自: 122.116.222.246 (01/03 15:45)

01/03 15:57, , 9F
而且我有用NSZombie 但是只要有debug message就不會有事
01/03 15:57, 9F

01/03 19:26, , 10F
目前解決了 因為我FMResultSet沒有call close method
01/03 19:26, 10F

01/03 19:26, , 11F
但是模擬器和device的行為不一樣還滿奇怪的
01/03 19:26, 11F
文章代碼(AID): #1D8LtPpm (MacDev)
文章代碼(AID): #1D8LtPpm (MacDev)