-3

我对这段代码有问题:

MPMediaItem *song = [[MPMusicPlayerController iPodMusicPlayer] nowPlayingItem];
NSString *songTitle = [song valueForProperty:MPMediaItemPropertyTitle];
NSString *songArtist = [song valueForProperty:MPMediaItemPropertyArtist];
//UIImageView *artwork = [[UIImageView alloc] initWithImage:MPMediaItemPropertyArtwork];
self.titleLabel.text = self.songTitle;
self.artistLabel.text = self.songArtist;

它告诉我“找不到财产”?!

但在我的 .h 文件中,我有两个属性:

@property (nonatomic, retain) IBOutlet UILabel *titleLabel;
@property (nonatomic, retain) IBOutlet UILabel *artistLabel;
4

4 回答 4

3

它可能在抱怨self.songTitleself.songArtist而你没有说是属性。将其更改为:

self.titleLabel.text = songTitle;
self.artistLabel.text = songArtist;
于 2013-08-20T15:14:56.540 回答
1

如果您@synthesize songTitle在主文件的顶部进行操作,则不需要使用关键字self.

于 2013-08-20T15:20:22.290 回答
0

我认为这是因为你没有定义 songTitle 和 songArtist,试试这个:

self.titleLabel.text = songTitle;
self.artistLabel.text = songArtist;
于 2013-08-20T15:17:33.327 回答
0

正如我所看到的,错误是说您没有为 songTitle 和 songArtist 定义属性。在您的代码中,两者都是局部变量,因此您无法通过“自我”访问它们。改为以这种方式尝试:

MPMediaItem *song = [[MPMusicPlayerController iPodMusicPlayer] nowPlayingItem];
NSString *songTitle = [song valueForProperty:MPMediaItemPropertyTitle];
NSString *songArtist = [song valueForProperty:MPMediaItemPropertyArtist];

self.titleLabel.text = songTitle;
self.artistLabel.text = songArtist;
于 2013-08-20T15:20:19.133 回答