iOS - переменная UILabel становится (нулевой) - PullRequest
0 голосов
/ 02 августа 2011

Я искал ответ в моем затруднительном положении, и я полагаю, что это связано с моей трудностью адаптации к ARC - я надеюсь развернуть свое приложение на iOS5 и в настоящее время тестирую его на бета4 3GS.

Когда загружается viewController (viewDidLoad :), мое приложение выделяет init для UILabel и настраивает его, чтобы добавить его в верхнюю часть экрана:

UIView *navHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 280, 44)];
self.artistLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 2, 280, 15)];
artistLabel.font = [UIFont systemFontOfSize:12];
artistLabel.textColor = [UIColor grayColor];
artistLabel.backgroundColor = [UIColor clearColor];
artistLabel.textAlignment = UITextAlignmentCenter;
[navHeaderView addSubview:artistLabel];

self.navigationBar.topItem.titleView = navHeaderView;

Хорошо, это работает нормально и заполняетсясоответствующую информацию, используя метод updateTrack:

- (void)updateTrack 
{
    _player = [MPMusicPlayerController iPodMusicPlayer];
    _item = [_player nowPlayingItem];

    self._artistString = [_item valueForProperty:MPMediaItemPropertyArtist];

    self.artistLabel.text = self._artistString;
}

Этот метод вызывается, когда воспроизводимая музыка изменяется с помощью NSNotifications.Однако теперь ArtistString UILabel (null).Я не могу понять, почему свойство было освобождено - для него задано неатомарное сильное свойство в заголовочном файле и синтезировано в верхней части .m-файла.

Может быть, я должен также добавить, что неатомное сильное свойствоЯ назначил для IBOutlet UIImageView также идет (ноль), как только приложение успешно загрузилось, отобразил обложку альбома один раз (т.е. это не добавлено как подпредставление).

Любая помощь будет принята с благодарностью: D

Ответы [ 3 ]

0 голосов
/ 04 августа 2011

Я понял, что моя проблема не в ARC для переменных, которые я использовал. Вместо этого это были настройки уведомлений в делегате приложения, которые не связывались правильно с UILabels IBOutlets / ViewController. Извините за боль всех.

0 голосов
/ 04 августа 2011

Это не имеет никакого отношения к тому, чтобы быть бета-версией iOS.

В своем заголовке вы определяете UILabel, а также используете @property / @synthesize?

Кроме того, удалите self. с метки.

0 голосов
/ 02 августа 2011

iOS5 все еще под NDA. Если вы являетесь зарегистрированным разработчиком, задайте этот вопрос на бета-форумах Apple.

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