你好我在一起有一个问题: 我读出了播放媒体歌曲的实际值,并将其添加到字典中。 然后进入一个数组。如果我再次按下按钮添加一个新条目,则所有的所有值都会变为相同。 你知道为什么?
这是我的代码:
- (IBAction)ActionButtonLU:(id)sender
{
MPMediaItem *currentItem = [musicPlayer nowPlayingItem];
NSString *titleString = [currentItem valueForProperty:MPMediaItemPropertyTitle];
NSString *artistString = [currentItem valueForProperty:MPMediaItemPropertyArtist];
NSString *albumString = [currentItem valueForProperty:MPMediaItemPropertyAlbumTitle];
if (titleString == nil) {
titleString = @"";
}
if (artistString == nil) {
artistString = @"";
}
` `if (albumString == nil) {
albumString = @"";
}
[_dictCat1 setObject:titleString forKey:@"Titel"];
[_dictCat1 setObject:artistString forKey:@"Artist"];
[_dictCat1 setObject:albumString forKey:@"Album"];
[_countCat1 addObject:_dictCat1];
[musicPlayer skipToNextItem];
}
答案 0 :(得分:1)
您正在每次通话中修改相同的词典_dictCat1
。您需要在本地创建字典并将其添加到_countCat1
。
[_countCat1 addObject:@{ @"Title": titleString,
@"Artist": artistString,
@"Album": albumString }];
答案 1 :(得分:0)
将对象添加到集合(NSArray,NSDictionary,NSSet等,包括可变对应项)时,集合不会复制它。使用[_countCat1 addObject:_dictCat1];
,您可以反复将相同的对象添加到_countCat1
。您需要创建新的NSDictionary并将 添加到_countCat1
集合。