Tat*_*tat 1 programming-languages objective-c
有时我遇到的代码有*,有时**.任何人都可以解释它们在Objective C中的含义吗?(我曾经是一名Java程序员,具有C/C++经验.)
在*所使用的指针的变量,并且是最常用的用于存储到一个Objective-C的对象,对象只能生活在堆,而不是堆叠中的参考表示.
指针不是Objective-C的一部分,而是C的一个特征(因此它的派生语言,其中Objective-C就是其中之一).
如果在质疑之间的差*和**,所述第一表示的指针,而第二表示指针的指针; 后者对前者的优点是,当使用**方法参数传入对象时,该方法可以更改此参数,并且可以在调用方法中访问新值.
也许**Cocoa中最常见的用法是使用NSError对象时.当调用一个可以NSError在失败时返回一个对象的方法时,方法签名看起来像这样:
- (id)someMethodThatUsesObject:(id)object error:(NSError**)error;
Run Code Online (Sandbox Code Playgroud)
这意味着调用函数可以传入指向NSError对象的指针,但是如果需要someMethodThatUsesObject:可以将值更改error为另一个NSError对象,然后可以通过调用方法访问它.
这通常用作函数只返回一个值的解决方法.