我在使用 Cocoa 时遇到了这个问题,我正在调用一个函数并将一个数组传递给它:
一些我调用函数的地方:
[self processLabels:labels];
函数如下:
- (void)processLabels:(NSMutableArray*)labs{
labs = [[NSMutableArray alloc] init];
[labs addObject:@"Random"];
....
}
调试时,我注意到在标签添加到实验室时没有新对象被添加到标签中。是因为我正在重新初始化实验室吗?那我怎么能在函数内部重新初始化标签呢?
我尝试使用 byref by 没有成功, 任何帮助表示赞赏.. 谢谢
最佳答案
'labs' 应该在将其传递给 processLabels 之前进行初始化,然后不应重新初始化。
如果您出于某种原因无法预先初始化数组并且您希望 processLabels 创建它,则需要将指针传递给指针:
[self processLabels:&labels];
方法会变成:
- (void)processLabels:(NSMutableArray**)labs{
*labs = [[NSMutableArray alloc] init];
[*labs addObject:@"Random"];
....
}
关于iphone - 将 NSMutableArray 传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/975995/