Mai*_*r00 3 objective-c parameter-passing ios
在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);
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我们没有传递实际的错误实例,但是因为我们传递了一个指向我们错误的指针,这允许他们在这个方法中创建一个NSError实例,并且在退出之后,我们将指向该新实例.
| 归档时间: |
|
| 查看次数: |
6468 次 |
| 最近记录: |