使用Swift 2编程从持久ID中查找歌曲
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Swift 2编程从持久ID中查找歌曲相关的知识,希望对你有一定的参考价值。
我是Swift编程的初学者,他试图重新编写我在网上找到的来自Persistent ID的歌曲。原始代码可在以下网站找到:
我想在Swift 2中编写这段代码(我不会使用Objective-C),但我缺乏翻译它的知识和经验。
代码:
MPMediaItem *song;
MPMediaPropertyPredicate *predicate;
MPMediaQuery *songQuery;
predicate = [MPMediaPropertyPredicate predicateWithValue: MyPersistentIdString forProperty:MPMediaItemPropertyPersistentID];
songQuery = [[MPMediaQuery alloc] init];
[songQuery addFilterPredicate: predicate];
if (songQuery.items.count > 0)
{
//song exists
song = [songQuery.items objectAtIndex:0];
CellDetailLabel = [CellDetailLabel stringByAppendingString:[song valueForProperty: MPMediaItemPropertyTitle]];
}
我的问题:
1)这个代码是否可以重写为Swift,它是否仍然足够流动而没有折旧?
2)我如何使用函数调用此代码?
答案
是的,我们可以在Swift中重写它。要查找是否已弃用某些内容,请查看Apple文档以获取MPMediaItem和MPMediaQuery。如果该类或其中某些方法已弃用,则会在那里注明。
这是Swift中作为函数重写的代码。它通过persistentIdString
并返回一个可选的MPMediaItem
func findSongWithPersistentIdString(persistentIDString: String) -> MPMediaItem? {
let predicate = MPMediaPropertyPredicate(value: persistentIDString, forProperty: MPMediaItemPropertyPersistentID)
let songQuery = MPMediaQuery()
songQuery.addFilterPredicate(predicate)
var song: MPMediaItem?
if let items = songQuery.items, items.count > 0 {
song = items[0]
}
return song
}
以上是关于使用Swift 2编程从持久ID中查找歌曲的主要内容,如果未能解决你的问题,请参考以下文章
将多首歌曲存储在 mpplayer 中,这些歌曲正在从具有歌曲持久 ID 的数据库中获取
如何使用 MPMediaItem 属性持久 ID 在 iPhone 音乐播放器框架中播放音乐?