我正在将Python程序转换为macOS应用程序的过程中,现在我可以使用ITunesLibrary框架直接读取Apple Music库。我正在用python读取导出的XML库,并将我所有的音乐都键入persistentID属性,我仍然想这样做。但是,我需要转换的数据文件将persistentID存储为字符串类型值,因为这是iTunes/Apple Music导出XML文件的方式。ITunesLibrary框架将persistentID作为NSNumber类型值进行检索。
我做了一点调查,看看这两者之间是否有转换方法,这样我就可以在我的数据文件上运行脚本,并将所有persistentID字符串类型转换为NSNumber类型。我发现的东西不起作用。它返回nil。
// The two below persistID's are for the same song.
var XMLPID = "7C9C79C87E3BEE04" // <--- persistentID from the XML file
var ITLPID:NSNumber = 8979185659088203268 // <--- persistentID from the ITL Framework
// I found this in another discussion here:
let convertedPID = NumberFormatter().number(from: XMLPID)
print("XML PID = \(XMLPID)")
print("Converted PID = \(convertedPID)")感谢任何帮助,让这个工作。
发布于 2020-06-19 02:37:01
它们是相同的数字,有两种表示形式。第一个是十六进制(以16为基数)。第二个是十进制(以10为基数)。Swift提供了简单的转换。
let hex = "7C9C79C87E3BEE04"
let num = 8979185659088203268 as NSNumber
let swiftnum = num.uint64Value
UInt64(hex, radix:16) == swiftnum // true
String(swiftnum, radix:16, uppercase:true) == hex // truehttps://stackoverflow.com/questions/62456879
复制相似问题