在Objective-C中,我看到了两种将对象传递给函数的常见模式。基本上所有函数对象都是通过引用传递的,如下所示:-(void) someFunc:(UIImage*)image;
这是通过引用传递的,不是吗?
但是,这是什么-(void) someFunc2:(UIImage**)image
?它也通过引用传递吗?还是通过指针传递指针?或者是什么?我不明白实际的区别是什么(但是我经常看到此代码)。主要问题:为什么我们需要这个指向指针传递的指针:-(void) someFunc2:(UIImage**)image
?谢谢。
传递双指针可以使函数交换您传入的对象。一个很好的例子是将双指针传递给NSError的所有许多Cocoa API。看看这个:
NSError *error = nil;
Result *result = [self someMethodWithPossibleError:&error];
if (![result isValid]) {
//handle the error
NSLog(@"Error occurred: %@", error);
}
在这种情况下,我们没有传递实际的错误实例,但是由于我们传递了指向错误的指针,因此这使他们可以在此方法中创建NSError实例,退出后,我们将指向该新实例。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句