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,我们一直都是通过引用传递的.
是的,objective-c也始终通过对象的引用传递.
由于这个答案是写的,现在有一个例外,虽然它是一个实现细节,并没有改变索赔的实际细节.
标记指针在技术上是按值传递的,因为引用实际上是数据.根据定义,它们也是不可变的,这就是为什么这是一个没有实际影响的实现细节.