在Swift 3中沿着字典迭代
发布时间:2020-12-14 05:29:13 所属栏目:百科 来源:网络整理
导读:我试图沿着字典迭代,以修剪未经证实的条目.以下Objective-C代码的 Swift 3转换不起作用: [[self sharingDictionary] enumerateKeysAndObjectsUsingBlock: ^(id key,id obj,BOOL *stop) { SharingElement* element=[[self sharingDictionary] objectForKey:k
我试图沿着字典迭代,以修剪未经证实的条目.以下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’的使用时报告以下错误:
像’元素’一样,完整的元组父亲胜过其能力.
使用element.value.confirmed. element是一个包含键和值的元组.
但您可能只想删除enumerated(): for (key,element) in self.sharingDictionary { ... } enumerated()接受迭代并添加从零开始的索引.与字典一起使用并不常见. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |