gpt4 book ai didi

objective-c - makeObjectsPerformSelector :

转载 作者:太空狗 更新时间:2023-10-30 03:15:16 26 4
gpt4 key购买 nike

我想让一个数组中的所有对象执行一个选择器。我发现了适当命名的 makeObjectsPerformSelector: 方法,但我对它有疑问。如果我在数组上使用它,它会更改现有数组还是返回一个新数组?如果它修改现有对象,返回应用选择器的新数组的最简单方法是什么?

最佳答案

makeObjectsPerformSelector:将针对数组中的每个对象运行该选择器。如果这些对象被选择器修改,它们将被修改。它不返回任何东西。现在,有一个问题,默认情况下,Cocoa 中的大多数副本都是浅拷贝,这意味着您获得了一个新数组,但它指向的底层对象是相同的对象。您将需要使用 initWithArray:copyItems 使其也复制根级项目。如果您想要一个包含更改对象的新数组以及旧数组,请执行以下操作:

NSArray *newArray = [[NSArray alloc] initWithArray:oldArray copyItems:YES];
[newArray makeObjectsPerformSelector:@selector(doSomethingToObject)];

关于objective-c - makeObjectsPerformSelector :,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/563051/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com