首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iTunes/Apple Music永久ID

iTunes/Apple Music永久ID
EN

Stack Overflow用户
提问于 2020-06-19 02:23:13
回答 1查看 103关注 0票数 0

我正在将Python程序转换为macOS应用程序的过程中,现在我可以使用ITunesLibrary框架直接读取Apple Music库。我正在用python读取导出的XML库,并将我所有的音乐都键入persistentID属性,我仍然想这样做。但是,我需要转换的数据文件将persistentID存储为字符串类型值,因为这是iTunes/Apple Music导出XML文件的方式。ITunesLibrary框架将persistentID作为NSNumber类型值进行检索。

我做了一点调查,看看这两者之间是否有转换方法,这样我就可以在我的数据文件上运行脚本,并将所有persistentID字符串类型转换为NSNumber类型。我发现的东西不起作用。它返回nil。

代码语言:javascript
复制
// 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)")

感谢任何帮助,让这个工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-19 02:37:01

它们是相同的数字,有两种表示形式。第一个是十六进制(以16为基数)。第二个是十进制(以10为基数)。Swift提供了简单的转换。

代码语言:javascript
复制
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 // true
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62456879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档