我正在运行一个MPMediaQuery,以便在用户的iPod库中找到一首歌,如下所示:
MPMediaQuery *songQuery = [MPMediaQuery songsQuery];
[songQuery addFilterPredicate:[MPMediaPropertyPredicate predicateWithValue:track.title forProperty:MPMediaItemPropertyTitle comparisonType:MPMediaPredicateComparisonEqualTo]];
[songQuery addFilterPredicate:[MPMediaPropertyPredicate predicateWithValue:track.album forProperty:MPMediaItemPropertyAlbumTitle comparisonType:MPMediaPredicateComparisonEqualTo]];
[songQuery addFilterPredicate:[MPMediaPropertyPredicate predicateWithValue:track.artist forProperty:MPMediaItemPropertyArtist comparisonType:MPMediaPredicateComparisonEqualTo]];
*** CRASH HERE ***
if (songQuery.items.count > 0) {
return [songQuery.items objectAtIndex:0];
}
else {
return nil;
}这个应用程序崩溃了,然后喷了出来:
'invalid value (nil) for property item_extra.title.'我做错什么了吗?有没有更好的方式来查询一首歌?谢谢大家!
发布于 2014-08-09 01:26:03
在这条线上:
[songQuery addFilterPredicate:[MPMediaPropertyPredicate predicateWithValue:track.title forProperty:MPMediaItemPropertyTitle comparisonType:MPMediaPredicateComparisonEqualTo]];track.title的值为零。您需要进行检查,例如:
if (track.title != nil)
{
[songQuery addFilterPredicate:[MPMediaPropertyPredicate predicateWithValue:track.title forProperty:MPMediaItemPropertyTitle comparisonType:MPMediaPredicateComparisonEqualTo]];
}编辑:我建议对您要添加的每个变量进行检查,以确保它们也不是零!
https://stackoverflow.com/questions/25214093
复制相似问题