objective-c – makeObjectsPerformSelector:

我想使数组中的所有对象执行选择器。我发现了适当的makeObjectsPerformSelector:方法,但是我有一个问题。如果我在数组中使用它,它会改变现有的数组还是返回一个新的数组?如果它修改现有的对象,应用选择器返回一个新的数组是最简单的方法?
makeObjectsPerformSelector:将针对数组中的每个对象运行该选择器。如果这些对象被选择器修改,他们将被修改。它不返回任何东西。现在,有一个catch,默认情况下,Cocoa中的大多数副本都是浅拷贝,这意味着你得到一个新的数组,但它指向的底层对象是相同的对象。您将需要使用initWithArray:copyItems使其复制根级别项目。如果你想要一个包含被改变的对象的新数组以及旧的数组,就像这样做:

NSArray *newArray = [[NSArray alloc] initWithArray:oldArray copyItems:YES];
[newArray makeObjectsPerformSelector:@selector(doSomethingToObject)];
翻译自:https://stackoverflow.com/questions/563051/makeobjectsperformselector

转载注明原文:objective-c – makeObjectsPerformSelector: