Сохраняет ли разделяемый объект делегата память? - PullRequest
0 голосов
/ 25 июля 2011

Я пишу, как показано ниже, в разных классах и методах моего приложения.

FruityGameAppDelegate *delegate = (FruityGameAppDelegate *)[[UIApplication sharedApplication] delegate];

Я хочу знать, будет ли оно занимать место (память) или если да, то каков будет подходящий способ игры?с такими объектами, так что моя программа не должна пропускать память или не должна быть тяжелой?

Ответы [ 3 ]

4 голосов
/ 25 июля 2011

Нет, он не занимает дополнительную память, поскольку UIAppDelegate уже существует.Вы только назначаете указатель на него (подумайте: вы устанавливаете только дорожный знак «Чтобы делегировать: таким образом» вместо создания нового).

0 голосов
/ 25 июля 2011

Нет, это не займет дополнительную память. Когда вы копируете его в новую переменную, он займет дополнительную память. Рассмотрим сценарий, в котором у вас есть несколько указателей, указывающих на один и тот же фрагмент памяти. В таком случае, когда память освобождается, все остальные указатели становятся висящими . Это может привести к серьезным проблемам, таким как сбой приложения. Однако, если вы прочитаете о различных свойствах переменных и о том, как вы можете получить к ним доступ в документации на яблоки , вы очень четко поймете, как использовать распределенные переменные в своем приложении.

0 голосов
/ 25 июля 2011

Нет, это определенно не занимает никакой дополнительной памяти.Вы уже создали экземпляр приложения appdelegate и, как упомянул Darkdust, вы просто используете другой указатель, который указывает на один и тот же экземпляр делегата приложения.то, что вы делаете, это не что иное, как обращение к существующей ячейке памяти для объекта с использованием другого указателя.

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