Lio*_*Lio 13 iphone performance nsdictionary ios objective-c-blocks
我需要遍历字典的所有键/值对并对这两个字段执行某些操作.我想知道什么是更高效,传统的'foreach key'方法或使用enumerateKeysAndObjectsUsingBlock的块方法:
这里有一个例子:
传统方法(块之前)
for (NSString* key in [self.dictionary allKeys] ) {
[self processKey:key value: [self.dictionary objectForKey:value ]];
}
Run Code Online (Sandbox Code Playgroud)
阻止方法.
[self.dictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop){
[self processKey:key value:obj];
}];
Run Code Online (Sandbox Code Playgroud)
我的直觉是使用块遍历键/值对更快,但我不确定,因为我不知道字典和特定块方法是如何实现的.
有什么想法吗?
提前致谢!
Mic*_*ick 12
它们基本相同 - 它们都是同步遍历.但是,以下将允许并发遍历,这将更快:
[self.dictionary enumerateKeysAndObjectsWithOptions:NSEnumerationConcurrent
usingBlock:^(id key, id object, BOOL *stop) {
}];
Run Code Online (Sandbox Code Playgroud)