我正在按照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'


是什么赋予了?

最佳答案

我认为您应该为Grand Central Dispatch使用包装器,而不是使用NSOperations。您可以在这里查看我之前写的一个内容:https://github.com/MaxKDevelopment/MKImageCenter

10-08 02:38