@property (nonatomic, copy) NSString * imageURL;
,并在PC中的dealloc我有[imageURL release];
这应该永远不会导致另一个类崩溃
我打电话
pc.imageURL = url;
我想问一下,如果我拿这个确定,因为我的应用程序有奇怪的崩溃
以前我总是做
pc.imageURL = [[NSString alloc] initWithString:url];
谢谢
@property (nonatomic, copy) NSString * imageURL;
,并在PC中的dealloc我有[imageURL release];
这应该永远不会导致另一个类崩溃
我打电话
pc.imageURL = url;
我想问一下,如果我拿这个确定,因为我的应用程序有奇怪的崩溃
以前我总是做
pc.imageURL = [[NSString alloc] initWithString:url];
谢谢
你在做什么是正确的。但是,你做了什么之前是错误的,因为
[[NSString alloc] initWithString:url];
保留了新的字符串,但它从来没有得到释放。
我想你已经在release
内建了一个你不需要的,因为你之前试图避免内存泄漏。
感谢您的回复,但我不明白最后一句的含义:“我认为您已经建立了一个您不需要的版本,因为您之前尝试避免内存泄漏。”我认为如果我[[NSString alloc] initWithString:url],比默认内容 – 2011-04-10 10:33:59
[[NString alloc] initWithString:url]自动调用不会autorelease。 [NSString stringWithString:url]会自动释放。如果你分配它,你拥有它并且必须释放它。 – 2011-04-10 13:18:07
@彼得:基本上特里已经说过了。我相信你已经添加了一个不必要的'-release',因为你通过做'[[NSString alloc] initWithString:url];'错误地保留了你的字符串。你必须弄清楚你在哪里释放字符串,你不应该。 – 2011-04-10 14:13:21
你有没有试过调试它来找出*为什么*和*哪里*它崩溃? – 2011-04-10 10:16:53