我一直在使用来自Apple WWDC视频的教程来开发iMessage扩展,但遇到一个奇怪的错误。我从一个空白项目开始,该项目运行良好。但是,我为添加了一个文件MSStickerBrowserViewController
。代码已构建,但是在模拟器中打开扩展名使其崩溃。奇怪的是,我从来没有做过浏览器的实例。为什么未执行的代码会崩溃?
错误是:dyld:未加载库:@ rpath / libswiftSwiftOnoneSupport.dylib引用自:/ Users / alextyshka / Library / Developer / CoreSimulator / Devices / BF34F16D-3CEF-4C7D-8D9A-D3D4B463F293 / data / Containers / Bundle / Application 75E2E14B-E76B-4EC7-9528-7CE38864B55D / BlankMessages.app / PlugIns / MessagesExtension.appex / MessagesExtension原因:找不到图片这是触发错误的代码:
import UIKit
import Messages
class MyStickerBrowserViewController: MSStickerBrowserViewController {
var stickers = [MSSticker]()
func changeBrowserViewBackgroundColor(color: UIColor) {
stickerBrowserView.backgroundColor = color
}
func loadStickers() {
createSticker(asset: "forest", localizedDescription: "forest sticker")
}
func createSticker(asset: String, localizedDescription: String) {
guard let stickerPath = Bundle.main().pathForResource(asset, ofType: "png") else {
print("couldn't create the sticker path for", asset)
return
}
let stickerURL = URL(fileURLWithPath: stickerPath) //This is the line that seems to be causing the error.
let sticker: MSSticker
do {
try sticker = MSSticker(contentsOfFileURL: stickerURL, localizedDescription: localizedDescription)
stickers.append(sticker)
} catch {
print(error)
return
}
}
/*
override func numberOfStickers(in stickerBrowserView: MSStickerBrowserView) -> Int {
}
override func stickerBrowserView(_ stickerBrowserView: MSStickerBrowserView, stickerAt index: Int) -> MSSticker {
}*/
}
我注意到,如果我取出第16行,即第一个URL,则不会引发该错误。
这是我关注的WWDC视频的链接。我已仔细检查以确保我完全遵循了视频
我重新安装了Xcode,它起作用了。奇怪的。谢谢大家的指教!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句