我试图从我的iOS应用中打开指向某个曲目的链接,但音乐应用随机崩溃。
我通过iTunes search API获取了跟踪网址。
以下是从JSON响应中提取的示例trackURL:https://itunes.apple.com/us/album/10-bagatelles-op.-5-bagatelle/id253254038?i=253254078&uo=4&partnerId=11
我添加我的会员ID(& at = MYID)和媒体类型(& mt = 1)以及音乐,以及& app =音乐在Apple Music而不是iTunes中打开(这将是&应用程序的iTunes =)。 我没有使用& at和& mt params尝试过它,它仍然会崩溃。我已将链接粘贴到Safari(和Chrome)中,它是一个有效的链接;我看到了合适的页面。
要实际打开网址,请使用
UIApplication.shared.openURL(url)
我也尝试过这种方式:
let svc = SFSafariViewController(url: URL, entersReaderIfAvailable: false)
svc.delegate = self
self.present(svc, animated: true, completion: nil)
有时一切正常 - 音乐应用程序打开,然后进入轨道。它打得很好。然后我回到我的应用程序,尝试另一个链接。和音乐崩溃。我的应用仍在运行。音乐有一个崩溃日志。它说问题是"试图保留解除分配的对象"。我不知道我个人能做些什么。
欢迎任何建议。
Process: Music [1100]
Path: /Applications/Music.app/Music
Identifier: com.apple.Music
Version: 1.0 (3.0)
Code Type: ARM-64 (Native)
Role: Foreground
Parent Process: launchd [1]
Coalition: com.apple.Music [577]
OS Version: iPhone OS 10.2 (14C92)
Report Version: 104
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x00000001abd62c88
Termination Signal: Trace/BPT trap: 5
Termination Reason: Namespace SIGNAL, Code 0x5
Terminating Process: exc handler [0]
Triggered by Thread: 0
Application Specific Information:
attempted to retain deallocated object
我不认为我尝试过任何不寻常的事情。事实上,我认为这可能是iTunes搜索API的常见用例。
XCode 8.2.1,Swift 3,iOS 10.2,iPhone 6S +也运行iOS 10.2
答案 0 :(得分:2)
来自Apple documentation:
跟踪陷阱[EXC_BREAKPOINT // SIGTRAP]
如果在运行时遇到意外情况,则Swift代码将以此异常类型终止,例如:
具有nil值的非可选类型 强制类型转换失败
我觉得解析你的网址时出错了。你能分享那部分吗?