当前位置:  开发笔记 > IOS > 正文

使用Swift 2编程从持久ID中查找歌曲

如何解决《使用Swift2编程从持久ID中查找歌曲》经验,为你挑选了1个好方法。

我是Swift编程的初学者,他试图重新编写我在网上找到的来自Persistent ID的歌曲.原始代码可在以下网站找到:

http://www.ios-developer.net/iphone-ipad-programmer/development/songs-and-playlists/find-song-from-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)我如何使用函数调用此代码?



1> James Zaghin..:

是的,我们可以在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
}

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有