【发布时间】:2016-11-17 18:44:33
【问题描述】:
我正在尝试沿字典进行迭代以修剪未确认的条目。以下 Objective-C 代码的 Swift 3 翻译不起作用:
[[self sharingDictionary] enumerateKeysAndObjectsUsingBlock: ^(id key, id obj, BOOL *stop) {
SharingElement* element=[[self sharingDictionary] objectForKey:key];
if (!element.confirmed){
dispatch_async(dispatch_get_main_queue(), ^{
[element deleteMe];
});
[[self sharingDictionary] performSelector:@selector(removeObjectForKey:) withObject:key
afterDelay:.2];
} else{
element.confirmed=NO;
}];
所以我尝试以这种方式使用以下紧凑的 enumerated() 方法:
for (key, element) in self.sharingDictionary.enumerated(){
if (!element.confirmed){
element.deleteMe()
self.perform(#selector(self.removeSharingInArray(key:)), with:key, afterDelay:0.2);
} else{
element.confirmed=false
}
}
但编译器在处理变量'element'的使用时报告以下错误:
元组类型 '(key: Int, value: SharingElement)' 的值没有成员 '确认'
like 'element' 取了full tuple 的父亲部分而不是它的权限。 是 enumerated() 的使用问题还是字典的处理问题,我该如何解决?
【问题讨论】:
标签: dictionary enumerate swift3