我在我的 Cocoa Mac 应用程序中有一个方法,它遍历我的应用程序的 PubSub 客户端中的所有订阅提要,并将所有条目标记为已读。
逻辑看起来像这样......
NSArray *feeds = [[PSClient applicationClient]feeds];
for(PSFeed *feed in feeds)
{
for(PSEntry *entry in [feed entries])
{
entry.read = NO;
}
}
如果有大量未读提要,则可能需要一段时间才能循环浏览所有提要(相对而言)。我希望用户能够在后台进行其他操作时执行其他操作,例如滚动浏览文章。所以我有一个 NSInvocationOperation 设置来调用该方法,就像这样......
NSInvocationOperation *opr = [[NSInvocationOperation alloc]initWithTarget:self selector:@selector(markAllReadOperation) object:nil];
[que addOperation:opr];
[opr release];
循环运行时,应用程序仍然会严重减速。用户界面几乎没有响应。我是否缺少 NSInvocationOperation 的某些内容,或者我的逻辑本身就很慢?