作者CharlieH (變笨中)
看板MacDev
標題[問題] 奇怪的release現象
時間Mon Jan 3 13:25:42 2011
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
1F:→ appleway:[NSString stringWithUTF8string:xx] 會autorelease吧 01/03 14:20
2F:推 offname:留給 autorelease pool 就好了。 01/03 14:28
3F:→ CharlieH:請問一下 我的setter是retain那個string,所以不是應該要 01/03 14:37
4F:→ CharlieH:release他嗎? 01/03 14:37
5F:→ popcorny:沒錯..你retain就要release... 01/03 15:38
6F:→ popcorny:我猜是某個地方的bug 已經不小心把這個string release了 01/03 15:38
7F:→ popcorny:你可以在release前..check retain count 01/03 15:39
8F:→ CharlieH:奇怪的是 為什麼只有device單獨run的時候才會crash? 01/03 15:44
※ 編輯: CharlieH 來自: 122.116.222.246 (01/03 15:45)
9F:→ CharlieH:而且我有用NSZombie 但是只要有debug message就不會有事 01/03 15:57
10F:→ CharlieH:目前解決了 因為我FMResultSet沒有call close method 01/03 19:26
11F:→ CharlieH:但是模擬器和device的行為不一樣還滿奇怪的 01/03 19:26