Sto provando ad iterare lungo un dizionario per potare le voci non confermate. La traduzione Swift 3 del seguente codice Objective-C non funziona:Iterating along a Dictionary 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;
}];
E così ho provato ad utilizzare il seguente compatto enumerato() il metodo in questo modo:
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
}
}
Eppure il compilatore segnala la seguente errore durante l'utilizzo del 'elemento' variabile:
valore di tipo tupla '(Rif: Int, valore: SharingElement)' ha nessun membro 'confermato'
Come "elemento" ha preso il padre di tuple completo rispetto alla parte della sua competenza. Il problema è nell'uso di enumerated() o nell'elaborazione del dizionario e come posso risolverlo?