我正在为Apple Dev实现一个表的并发imageLoader。 NSOpertaion上的视频。
有趣的事情(至少对我来说)是,在我的NSOperation主要内部,除其他外,我有这行代码(其中imageURL是一个有效的url字符串,在NSOperation中存储并保留为ivar):
UIImage * newThumbnail = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:imageURL]]];
以上代码有效,但是在调用NSData dataWithContentsOfURL时,仪器会报告CFHTTPCookieStorage泄漏。所以看起来像CF泄漏......我无能为力。但有人说,如果他们切换到dataWithContentsOfURL:options:error,则不会发生泄漏。
所以我继续尝试,这意味着上面的一行变成了:
UIImage * newThumbnail = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:imageURL] options:0 error:&error]];
但是后来我得到了之前工作的相同URLWithString的异常!:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSConcreteData initWithContentsOfURL:options:error:]: nil URL argument'
是什么给出了?
答案 0 :(得分:1)
我认为您应该使用Grand Central Dispatch的包装器而不是使用NSOperations。你可以看一下我刚才写的一篇:https://github.com/MaxKDevelopment/MKImageCenter。