Objective-C中的对象是如何传递和返回的?
在Java中,我可以使用(ObjectA)objB轻松地传递数据。我如何在目标C中做类似的事情?还有,为什么Objective C不能返回对象,而只能返回id?我确实-(MyObj)返回myobject{},但是Xcode警告我不能使用MyObj,但是我可以返回id-(id)returnMyObject{}。Java和Apple的Objective C对象的底层模型实际上是相同的,它们都在堆上有所有对象,并且通过指针访问 区别在于Java中的指针是隐藏的,因此(ObjectA)objB是指向ObjectA类型数据的指针。在目标C中,指针是显式的,您需要说(MyObj*)returnMyObject{}Objective-C中的对象是如何传递和返回的?,objective-c,parsing,Objective C,Parsing,在Java中,我可以使用(ObjectA)objB轻松地传递数据。我如何在目标C中做类似的事情?还有,为什么Objective C不能返回对象,而只能返回id?我确实-(MyObj)返回myobject{},但是Xcode警告我不能使用MyObj,但是我可以返回id-(id)returnMyObject{}。Java和Apple的Objective C对象的底层模型实际上是相同的,它们都在堆上有所有对象,并且通过指针访问 区别在于Java中的指针是隐藏的,因此(ObjectA)objB是指向Ob
id是指向一个对象的指针(这是一个例外,因为指针像Java一样是隐式的),正如Mark已经指出的那样;所有Objective-C对象都需要结尾处的
*
;它总是NSString*aString
,从不NSString aString
这也适用于铸件;因此,您必须执行(MyObj*)一个对象。然而,请注意,强制转换实际上并没有做任何事情,它只是作为编译器的提示