Как передаются объекты и каковы накладные расходы? - PullRequest
0 голосов
/ 21 сентября 2011

У меня есть базовый вопрос о кодировании obj-c, скажем, у меня есть два класса, представленных переменными:

ClassA *classA; 
ClassB *classB;

Если бы я хотел получить доступ к ClassB из ClassA, я мог быпередать объект в classB в качестве аргумента в любой метод ClassA и использовать его соответствующим образом.

Каковы издержки этой транзакции, и имеют ли большие объекты выделенной памяти более высокие издержки по сравнению с меньшими выделенными объектами?Или транзакция является простым 4-байтовым указателем?(Как передаются объекты?)

Еще один вопрос, если бы я хотел сохранить ClassB *classB в заголовке после инициализации с использованием объекта передаваемого аргумента classB.Разве это будет дешевле, чем последовательная передача аргументов каждому из моих индивидуальных методов?

Спасибо,
Оливер.

1 Ответ

0 голосов
/ 21 сентября 2011

Если вы передаете указатели, на самом деле больше не нужно платить за то, чтобы передать указатель int.То же самое для хранения значения в объекте - никакой реальной разницы (игнорируя любые операции сохранения, которые вы можете сделать), чем в хранении int.

Конечно, когда вы храните указатель на объект вдругой объект, который вы обычно должны retain это, но это целое `другое обсуждение.

...