Как объекты передаются и возвращаются в Objective-C? - PullRequest
1 голос
/ 14 апреля 2010

В Java я могу легко передавать данные, используя (ObjectA) objB. Как я могу сделать подобные вещи в Objective C? Кроме того, почему Objective C не может вернуть объект, а только может вернуть только идентификатор? Я делаю - (MyObj) returnMyObject {}, но Xcode предупреждает меня, что я не могу использовать MyObj, но я могу вернуть идентификатор ..... - (id) returnMyObject {}.

Ответы [ 2 ]

3 голосов
/ 14 апреля 2010

Базовая модель объектов Java и Objective C от Apple на самом деле одинакова и имеет все объекты в куче и доступна через указатели.

Разница в том, что в Java указатели скрыты, поэтому (ObjectA) objB является указателем на данные типа ObjectA. В Objective C указатель является явным, и вам нужно сказать (MyObj *) returnMyObject {}

id - это указатель на объект (так же исключение в том, что указатель неявный, как Java)

0 голосов
/ 14 апреля 2010

Как уже отмечал Марк; все объекты Objective-C требуют * в конце; это всегда NSString *aString, никогда NSString aString.

Это относится и к приведениям; так что вам придется сделать (MyObj *)anObject. Однако обратите внимание, что приведение на самом деле ничего не делает , это просто подсказка для компилятора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...