快速问题:在Objective-C中(ReturnClass *)methodName...
和(ReturnClass)methodName
之间的区别?Objective-C中(ReturnClass *)methodName ...和(ReturnClass)methodName ...之间的区别是什么?
我知道(返回类型*)方法名...返回ReturnClass的实例,而不是(ReturnClass)methodName
刚刚返回什么?
谢谢。
快速问题:在Objective-C中(ReturnClass *)methodName...
和(ReturnClass)methodName
之间的区别?Objective-C中(ReturnClass *)methodName ...和(ReturnClass)methodName ...之间的区别是什么?
我知道(返回类型*)方法名...返回ReturnClass的实例,而不是(ReturnClass)methodName
刚刚返回什么?
谢谢。
如果您的ReturnClass
是一个对象(很有可能),那么您不能在没有*的情况下使用它。你会得到一个编译错误。否则,*是实例指针(基本类型或结构),并没有*的就是实例本身
编辑:关于指针辉煌解释从乔:
认为实例作为你的房子和指针作为你的地址。你的房子是一个很大的物品,所以你不必复印你的房子,而是在你开派对时把它传给你的朋友,你可以给他们你的地址,这样他们就可以到你家了。现在,如果你有一个小东西,比如传单,那么只需复印并传递出去,而不是让每个人都能得到那张纸。将大型对象(房子)视为Objective-C类或结构体充满信息,并将小物体(传单)视为像int,BOOL,double等原始形式
它不一定是'NSObject'的子类如果它是一个Objective-C类,它需要被一个指针引用。有可能创建其他根类,这就是为什么有一个['NSObject'协议](https://developer.apple.com/library/mac/documentation/cocoa/reference/foundation/Protocols/NSObject_Protocol/Reference/ NSObject.html#// apple_ref/OCC/INTF/NSObject的)。一个例子是['NSProxy'](https://developer.apple.com/library/mac/documentation/cocoa/reference/foundation/classes/NSProxy_Class/Reference/Reference.html)。 – Joe
@Joe谢谢你指出这一点! –
很好的答案!但是现在指向实例的指针和实例本身有什么区别?我不明白,我已经读了几次,而且他们看起来都是一样的。如果上述情况随时间而改变,唯一的区别因素是。在第一种情况下,指向该实例的指针也会反映这些更改,而实例本身在进行更改之前传递,接收方将不知道更改并显示旧实例?! – unmircea
[为什么CGSize doesn' t使用\ *当声明变量?](http://stackoverflow.com/questions/7071616/why-cgsize-doesnt-use-when-declaring-variables) – Joe