2013-06-18 2 views
-5

Это может быть тривиально. Мне интересно, можете ли вы передать объект как параметр функции, тогда функция может работать с объектом, а затем возвращать тот же объект обратно. У меня есть работа для этого, но хотелось бы знать, есть ли способ сделать это.Objective-C: объект как параметр и возвращаемый объект в функции

Пример:

-(objectA *)aFunctionWithParameter:(objectA *)param 
{ 
    //...Operate on param 

    return param; 
} 
+1

Вы пробовали? Что-то не работает? Обходной путь ?? – Wain

+2

Да. Ты можешь. Работает отлично. Что не так? – bbum

+0

Euh, что именно не так с текущим кодом? –

ответ

0

Да, вы можете это сделать. В объективе-C указатели передаются по ссылке. Таким образом, когда вы меняете любые файлы объекта, полученные как параметр вашей функции, вы изменяете фактический объект. При его возврате у вас будет обновленный объект.

+4

Нет, в объектах Objective-C * передаются по ссылке. Сами указатели передаются по значению, и они * являются * ссылками на передаваемые объекты. – Caleb

+0

@Caleb Итак, если операция выполняется по параметру, после того, как существовал метод, могу ли я увидеть обновление по параметру? Конечно, я могу попробовать это сам и посмотреть! – Hamid

+0

@Hamid 'param' имеет тип' objectA * ', то есть это указатель на экземпляр класса objectA. Указатель * передается по значению, что является еще одним способом сказать, что * объект * передается по ссылке (потому что 'param' является ссылкой на объект). Если функция использует 'param' для доступа к объекту, любые изменения, которые он делает, будут сохраняться, конечно, после выхода функции. Если функция изменяет сам указатель 'param', например. что указывает на какой-то другой объект, это изменение не будет сохраняться после выхода функции. – Caleb

Смежные вопросы