Программно создайте объект и затем отпустите его - PullRequest
0 голосов
/ 01 сентября 2011

Я программно создаю ActivityIndicatorView с

UIActivityIndicatorView* cactivity = [[[UIActivityIndicatorView alloc] 
 initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite] retain];

Затем, когда я хочу остановить анимацию и выпустить в следующем
- (void)connectionDidFinishLoading, я использую необъявленный идентификатор?Но я думал, что сохранил это и должен был выпустить это сам.

Ответы [ 4 ]

2 голосов
/ 01 сентября 2011

Во-первых, нет необходимости сохранять UIActivityIndicatorView после того, как вы alloc init его, он уже имеет счет сохранения 1.

Просто объявите UIActivityIndicatorView в файле .h, чтобы потом можно было ссылаться на него как на переменную Instance. (Спасибо Роб).

1 голос
/ 01 сентября 2011

Попытайтесь получить результат или избежать предупреждений, используя «autorelease». Но это не значит, что это хорошо в каждом случае.

1 голос
/ 01 сентября 2011

Локальное объявление : Вы объявили UIActivityIndicator в локальном методе, из-за чего он недоступен другим методам. Вы должны будете объявить в заголовочном файле. Кроме того, дать ему свойство сохранить. Затем вы можете получить к нему доступ, где вы хотите.

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

1 голос
/ 01 сентября 2011

Необъявленный идентификатор означает, что переменная не определена в текущей области. Чтобы одна и та же переменная была доступна в нескольких методах, сделайте ее классом ivar или свойством.

...