为什么 Swift 3 从未执行过的代码抛出运行时错误?
Why is Swift 3 code that's never executed throwing runtime errors?
我一直在使用 Apple 的 WWDC 视频中的教程开发 iMessage 扩展程序,但遇到了 st运行ge 错误。我从一个空白项目开始,它构建了一个 运行 就好了。但是,我为 MSStickerBrowserViewController
添加了一个文件。代码已构建,但在模拟器中打开扩展程序使其崩溃。 st运行ge 的事情是,我从来没有创建浏览器的实例。为什么未执行的代码会崩溃?
这是错误: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,不会引发错误。
Here 是我关注的 WWDC 视频的 link。我已经仔细检查以确保我完全按照视频进行了操作
我重新安装了 Xcode 并且成功了。诡异的。谢谢大家的指点!
我一直在使用 Apple 的 WWDC 视频中的教程开发 iMessage 扩展程序,但遇到了 st运行ge 错误。我从一个空白项目开始,它构建了一个 运行 就好了。但是,我为 MSStickerBrowserViewController
添加了一个文件。代码已构建,但在模拟器中打开扩展程序使其崩溃。 st运行ge 的事情是,我从来没有创建浏览器的实例。为什么未执行的代码会崩溃?
这是错误: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,不会引发错误。
Here 是我关注的 WWDC 视频的 link。我已经仔细检查以确保我完全按照视频进行了操作
我重新安装了 Xcode 并且成功了。诡异的。谢谢大家的指点!