Ich versuche, entlang eines Wörterbuchs zu iterieren, um unbestätigte Einträge zu beschneiden. Der Swift 3 Übersetzung des folgenden Objective-C-Code funktioniert nicht:Iterieren entlang eines Wörterbuchs in 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;
}];
Und so habe ich versucht, die folgende kompakt mit aufgezählt() -Methode auf diese Weise:
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
}
}
Doch der Compiler meldet die folgende Fehler, während die Verwendung von Variable 'Elemente' Verarbeitung:
Wert des Tupels type '(keys: Int, Wert: SharingElement)' hat kein Mitglied 'bestätigt'
Wie "Element" nahm den vollen Tupel Vater als der Teil seiner Kompetenz. Ist das Problem bei der Verwendung von Aufzählungs() oder bei der Verarbeitung des Wörterbuchs und wie kann ich es beheben?