Próbuję iterować wzdłuż słownika, aby przycinać niepotwierdzone wpisy. Swift 3 przekład następujący kod Objective-C nie działa:Iterowanie wzdłuż słownika w 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;
}];
A więc próbowałem przy użyciu następującej Compact wyliczone() metoda w ten sposób:
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
}
}
Jednak kompilator donosi następujący błąd podczas przetwarzania użycie zmiennej „elementu”:
wartość typu krotki „(klucz: Int, wartość: SharingElement)” został żaden członek „potwierdzone”
Podobnie jak "element" wziął pełno krotki ojciec niż część jego kompetencji. Czy problem dotyczy używania wyliczonych() lub przetwarzania słownika i jak mogę to naprawić?