将NSMutableArray或NSMutableDictionary传递给方法 - 您可以添加到它吗?

Jan*_*ann 1 cocoa-touch objective-c nsmutablearray nsmutabledictionary ios

如果我有一个NSMutableArrayor NSMutableDictionary并将其传递给方法a la:

-(void)addToThisArray:(NSMutableArray *)theMutableArray
{
    [theMutableArray addObject:@"test"];
}
Run Code Online (Sandbox Code Playgroud)

并称之为:

 NSMutableArray *theMutableArrayToPass = [[NSMutableArray alloc] init];
 [theMutableArrayToPass addObject:@"2"];
 [self addToThisArray:theMutableArrayToPass];
Run Code Online (Sandbox Code Playgroud)

这是改变一个NSMutableArray或有效的方法NSMutableDictionary吗?当然,我对数组/字典的作用要比这个例子多得多,但我习惯于Perl,我们一直都是通过引用传递的.

bbu*_*bum 7

是的,objective-c也始终通过对象的引用传递.

由于这个答案是写的,现在有一个例外,虽然它是一个实现细节,并没有改变索赔的实际细节.

标记指针在技术上是按值传递的,因为引用实际上是数据.根据定义,它们也是不可变的,这就是为什么这是一个没有实际影响的实现细节.