假设我有这个方法:
-(void) mofidyObject:(NSArray *)obj;
如何准确修改传递到此数组的对象?
我已经看过一段时间了,我知道您需要有一个“&”前缀,但不知道具体如何。
假设我有这个方法:
-(void) mofidyObject:(NSArray *)obj;
如何准确修改传递到此数组的对象?
我已经看过一段时间了,我知道您需要有一个“&”前缀,但不知道具体如何。
一些东西:
有一个对象,然后有一个指向对象的变量。这些是不同的,修改它们的方法也不同。
如果要修改对象(其内容),则使用代码中的正常传递机制——除了 NSArray 不是可变对象这一事实。但是,如果您改为传递 NSMutableArray,那将可以正常工作。
如果要修改变量的内容,使其指向不同的对象,则必须将其地址传递给方法。这就是“&”运算符发挥作用的地方。
-(void) mofidyObject:(NSMutableArray **)obj
{
[*obj addObject:@"love you!"];
}
- (void)viewDidLoad
{
[super viewDidLoad];
NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"Stack", @"Overflow", nil];
[self mofidyObject:&array];
//Don't forget to release after use
}
NSMutableArray *arrRows=[[NSMutableArray alloc]init]; //suppose you have this NSMutableArray
[self mofidyObject:&arrRows];
}
-(void) mofidyObject:(NSMutableArray **)obj
{
self.arrMultiProd=*obj; //Then you can assign pointer refrence to your NSMutableProperty like this
}
但是在 ARC 下是不允许的。