我是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)我如何使用函数调用此代码?
是的,我们可以在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 }