在 NSMutableDictionary 上保存迭代器

Saving the iterator on NSMutableDictionary

在 C++ 中,可以在映射上声明迭代器。 然后可以提升和保存迭代器,这样以后可以从保存的位置恢复迭代。

如何在 Obj-C 中有效地做同样的事情?

尝试用字典的键创建一个有序数组并迭代它。您可以随时从 for 循环中跳出。 currentIteration var 确保存储最后一次迭代,您下次可以使用它来恢复。

NSMutableDictionary *dictionary = @{@"key1" : @"value1", @"key2" : @"value2", @"key3" : @"value3"};
NSArray *keys = dictionary.allKeys;
int currentIteration = 0;

for (int i = 0; i < keys.count; i++) {
    currentIteration = i;
    NSObject *value = dictionary[keys[i]];
    NSLog(@"%@", value);
}