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