这段代码与我正在处理的项目分开。它始终在Mac OS 10.5.7上重现垃圾回收错误,有时会崩溃。我一直在看这个问题太久了,所以我的问题是:有没有人知道为什么这会在垃圾收集开启时出错?
- (void) doCrash: (id) sender
{
NSArray *lURLArray = [ NSArray arrayWithObjects:
@"http://userserve-ak.last.fm/serve/300x300/23621007.jpg",
@"http://userserve-ak.last.fm/serve/300x300/26675609.png",
@"http://userserve-ak.last.fm/serve/300x300/26675609.png",
nil ];
NSString *lImageURL = nil;
for (lImageURL in lURLArray)
{
NSImage *lImage = [[NSImage alloc] initWithContentsOfURL: [NSURL URLWithString: lImageURL]];
NSSize targetSize = NSMakeSize(80,80);
NSImage *newImage = [[NSImage alloc] initWithSize:targetSize];
[newImage lockFocus];
NSRect thumbnailRect = NSMakeRect(0,0,80,80);
NSRect sourceRect = NSMakeRect(0,0,[lImage size].width,[lImage size].height);
[lImage drawInRect: thumbnailRect
fromRect: sourceRect
operation: NSCompositeSourceOver
fraction: 1.0];
[newImage unlockFocus];
}
}
在使用lURLArray中的URL时,我会遇到不同的行为:有时会崩溃,有时会出现错误消息。
当垃圾收集器释放其中一个映像时会触发垃圾收集错误消息,如下所示:
reference count underflow for <address>, break on auto_refcount_underflow_error to debug.
非常感谢任何帮助, 谢谢, 克里斯托夫
答案 0 :(得分:2)
Apple已经向我确认这是OX X 10.5.7中的一个错误。
rdar://问题/ 6938657