首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MPMediaQuery无效值

MPMediaQuery无效值
EN

Stack Overflow用户
提问于 2014-08-09 00:33:36
回答 1查看 440关注 0票数 0

我正在运行一个MPMediaQuery,以便在用户的iPod库中找到一首歌,如下所示:

代码语言:javascript
复制
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;

}

这个应用程序崩溃了,然后喷了出来:

代码语言:javascript
复制
'invalid value (nil) for property item_extra.title.'

我做错什么了吗?有没有更好的方式来查询一首歌?谢谢大家!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-09 01:26:03

在这条线上:

代码语言:javascript
复制
[songQuery addFilterPredicate:[MPMediaPropertyPredicate predicateWithValue:track.title forProperty:MPMediaItemPropertyTitle comparisonType:MPMediaPredicateComparisonEqualTo]];

track.title的值为零。您需要进行检查,例如:

代码语言:javascript
复制
if (track.title != nil)
{
[songQuery addFilterPredicate:[MPMediaPropertyPredicate predicateWithValue:track.title forProperty:MPMediaItemPropertyTitle comparisonType:MPMediaPredicateComparisonEqualTo]];
}

编辑:我建议对您要添加的每个变量进行检查,以确保它们也不是零!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25214093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档