Sto guardando uno NSArray
property
con KVO
. Ho implementato KVC
come in this post e ho anche implementato la maggior parte degli accessor di array KVC
. Per mutarlo, io uso mutableArrayValueForKey
. Funziona bene, tranne che per 2 problemi:KVO su removeAllObjects Trigger NSKeyValueChangeRemoval per ogni articolo separatamente
Quando chiamo
removeAllObjects
, ho unNSKeyValueChangeRemoval
cambiamento per ogni singolo elemento rimosso. Vorrei ricevere solo una notificaNSKeyValueChangeRemoval
con tutti gli indici rimossi al suo interno.Analogamente quando chiamo
addObjectsFromArray:
, ottengoNSKeyValueChangeInsertion
per ogni singolo elemento aggiunto. Mi piacerebbe ricevere solo una notificaNSKeyValueChangeInsertion
con tutti gli indici aggiunti.
Si noti che io faccio hanno attuato i metodi KVC remove<Key>ItemsAtIndexes:
e insert<Key>Items:atIndexes:
. Sono non chiamato però.
Io uso le seguenti soluzioni alternative:
- (void)removeAllObjectsWorkaroundFromArray:(NSMutableArray *)modelArray {
NSRange indexRange;
indexRange.length = modelArray.count;
indexRange.location = 0;
NSIndexSet *indexSet = [NSIndexSet indexSetWithIndexesInRange:indexRange];
[modelArray removeObjectsAtIndexes:indexSet];
}
- (void)addObjectsFromArrayWorkaroundWithArray:(NSMutableArray *)modelArray arrayToAdd:(NSArray *)arrayToAdd {
NSRange indexRange;
indexRange.length = arrayToAdd.count;
indexRange.location = modelArray.count;
NSIndexSet *indexSet = [[NSIndexSet alloc] initWithIndexesInRange:indexRange];
[modelArray insertObjects:arrayToAdd atIndexes:indexSet];
}
C'è un modo di utilizzare direttamente removeAllObjects
e addObjectsFromArray:
senza la necessità di soluzioni precedenti?
Digitare nell'ultima riga di codice? – Mundi
Yepp, grazie. Corretto. – fabb