使用 Swift 2 编程从持久 ID 中查找歌曲
Finding a Song from Persistent ID using Swift 2 programming
我是 Swift 编程的初学者,我正在尝试重写我在网上找到的 从持久 ID 中找到歌曲的代码。原始代码可以在这个网站找到:
我想在Swift2中写这段代码(我不会用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 中重写它。要查找是否有某些内容已弃用,请查看 MPMediaItem and MPMediaQuery 的 Apple 文档。如果 class 或其某些方法已弃用,将在此处注明。
这里是在 Swift 中作为函数重写的代码。它传入 persistentIdString
和 returns 一个可选的 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 编程的初学者,我正在尝试重写我在网上找到的 从持久 ID 中找到歌曲的代码。原始代码可以在这个网站找到:
我想在Swift2中写这段代码(我不会用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 中重写它。要查找是否有某些内容已弃用,请查看 MPMediaItem and MPMediaQuery 的 Apple 文档。如果 class 或其某些方法已弃用,将在此处注明。
这里是在 Swift 中作为函数重写的代码。它传入 persistentIdString
和 returns 一个可选的 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
}