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
È stato utile?

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
scroll top