Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 将NSMutableArray或NSMutableDictionary传递给一个方法——您可以添加到其中吗?_Objective C_Ios_Cocoa Touch_Nsmutablearray_Nsmutabledictionary - Fatal编程技术网

Objective c 将NSMutableArray或NSMutableDictionary传递给一个方法——您可以添加到其中吗?

Objective c 将NSMutableArray或NSMutableDictionary传递给一个方法——您可以添加到其中吗?,objective-c,ios,cocoa-touch,nsmutablearray,nsmutabledictionary,Objective C,Ios,Cocoa Touch,Nsmutablearray,Nsmutabledictionary,如果我有一个NSMutableArray或NSMutableDictionary并将其传递给方法a la: -(void)addToThisArray:(NSMutableArray *)theMutableArray { [theMutableArray addObject:@"test"]; } 把它叫做: NSMutableArray *theMutableArrayToPass = [[NSMutableArray alloc] init]; [theMutableArra

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

-(void)addToThisArray:(NSMutableArray *)theMutableArray
{
    [theMutableArray addObject:@"test"];
}
把它叫做:

 NSMutableArray *theMutableArrayToPass = [[NSMutableArray alloc] init];
 [theMutableArrayToPass addObject:@"2"];
 [self addToThisArray:theMutableArrayToPass];

这是更改NSMutableArray或NSMutableDictionary的有效方法吗?一、 当然,与本例相比,objective-c对数组/字典的作用要大得多,但我已经习惯了Perl,我们一直都是通过引用传递的。

是的,objective-c也总是通过引用传递对象

因为这个答案是书面的,所以现在有一个例外,尽管它是一个实现细节,并且没有改变声明的实际细节


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

是的,objective-c也总是通过引用传递对象

因为这个答案是书面的,所以现在有一个例外,尽管它是一个实现细节,并且没有改变声明的实际细节


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

。我有一个内存泄漏问题,并试图找到它。我只是想确保当我这样做的时候,我没有复制整个数组/dict并添加到其中——因此不知何故,它没有使用的内存翻了一番。谢谢啊!我再过11分钟就不能接受这个答案了。如果stackoverflow允许,我会这样做。再次感谢!搜索bbum heapshot分析,阅读我写的关于使用heapshot分析跟踪内存增长的文章。这可能会很快解决你的记忆增长问题。祝你好运!天哪!我读了你的文章,这篇文章让我想到了自动释放池。所以,我把它放在一个NSAutoreleasePool*pool=[[NSAutoreleasePool alloc]init]中;[pool release]从1.5G增加到29MB!谢谢你带领我找到了一个方向,帮助我找到了答案。我讨厌与范围相关的自动释放错误。即使它们是我自己的——我早该知道+这一次有两个。一个是帮我回答byRef的问题…另一个是让我彻夜挠头的答案!令人惊叹的很高兴能帮忙@为什么会有这么多相反的答案,或者,或者也许是太棒了。我有一个内存泄漏问题,并试图找到它。我只是想确保当我这样做的时候,我没有复制整个数组/dict并添加到其中——因此不知何故,它没有使用的内存翻了一番。谢谢啊!我再过11分钟就不能接受这个答案了。如果stackoverflow允许,我会这样做。再次感谢!搜索bbum heapshot分析,阅读我写的关于使用heapshot分析跟踪内存增长的文章。这可能会很快解决你的记忆增长问题。祝你好运!天哪!我读了你的文章,这篇文章让我想到了自动释放池。所以,我把它放在一个NSAutoreleasePool*pool=[[NSAutoreleasePool alloc]init]中;[pool release]从1.5G增加到29MB!谢谢你带领我找到了一个方向,帮助我找到了答案。我讨厌与范围相关的自动释放错误。即使它们是我自己的——我早该知道+这一次有两个。一个是帮我回答byRef的问题…另一个是让我彻夜挠头的答案!令人惊叹的很高兴能帮忙@为什么会有这么多相反的答案,或者,或者