Utilizzo di makeObjectsPerformSelector di NSArray per avere effetti collaterali
-
08-07-2019 - |
Domanda
Ho un NSArray di Foos in un programma Objective-C. Vorrei chiamare la funzione doIt di ogni Foo, tuttavia, la funzione makeObjectsPerformSelector di NSArray non consente di modificare Foos originale, per i documenti . Il selettore doIt cambia il membro di dati m per ciascun Foo quando viene chiamato doIt. Come posso eseguire questa funzione in modo efficiente su ciascun Foo nell'NSArray?
@interface Foo : NSObject {
NSString *m;
}
@property (nonatomic, retain) NSString *m;
-(void)doIt;
@end
Soluzione
Puoi modificare gli Foo
originali, ma non l'array stesso. Come indicato nella documentazione:
Il metodo non deve accettare alcun argomento e non deve avere l'effetto collaterale di modificare l'array ricevente.
Buona fortuna!
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow