我已经搜索了我的困境的答案,我相信这是因为我很难适应ARC - 我希望在iOS5上部署我的应用程序,目前正在测试beta4 3GS。< / p>
当加载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文件的顶部进行了合成。
也许我还应该补充说,一旦应用程序成功加载,我分配给UIImageView的IBOutlet的非原子强属性也会(null)显示专辑封面一次(即不作为子视图添加)。
非常感谢任何帮助:D
答案 0 :(得分:0)
我发现我的问题不是关于我使用的变量的ARC。相反,App Delegate中的通知设置无法与IBOutlets / ViewController的UILabel正确通信。很抱歉让每个人都感到痛苦。
答案 1 :(得分:0)
这与成为测试版iOS没有任何关系。
在标题中,您是定义UILabel
还是使用@property
/ @synthesize
?
另外,从标签中删除self.
。
答案 2 :(得分:-1)
iOS5仍然在NDA下。如果您是注册开发人员,请在测试版Apple论坛中提出此问题。