【发布时间】:2017-07-05 08:33:29
【问题描述】:
我正在尝试为 Apple Watch 添加我的第一个扩展程序,但在为应用程序创建数组时遇到了问题。当我运行应用程序时,它崩溃了,我的数组中出现了这个错误:
线程 1:EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)
下面是我的代码,我想要的只是每次点击按钮时我的图像都会从数组中更改为随机图像:
import WatchKit
import Foundation
class InterfaceController: WKInterfaceController {
let runeArray = [UIImage(named: ("Fehu.png"))!, UIImage(named: ("Uruz.png"))!, UIImage(named: ("Thurisaz.png"))!]
@IBOutlet var runeImage: WKInterfaceImage!
override func awake(withContext context: Any?) {
super.awake(withContext: context)
// Configure interface objects here.
}
override func willActivate() {
// This method is called when watch view controller is about to be visible to user
super.willActivate()
}
override func didDeactivate() {
// This method is called when watch view controller is no longer visible
super.didDeactivate()
}
@IBAction func castRuneButton() {
let randomRune = runeArray[Int(arc4random_uniform(UInt32(runeArray.count)))]
runeImage.setImage(randomRune)
}
}
【问题讨论】:
-
崩溃在哪一行?从数组中获取图像,还是将其设置在视图上?
-
几乎可以肯定(至少)找不到其中一个图像文件,因此您在强制展开时会崩溃
-
嗨,我在上面发布的错误出现在 let runeArray 代码行旁边。我看到当我创建 runeImage 它是一个 WKInterfaceImage 对我来说是新的所以我的 UIImage 数组是否正确?我不确定?
-
@Paulw11 我检查了我的图像名称,并且它们输入得很好,所以我认为我的数组语法错误?
-
您必须检查该资产目录的属性,并确保它已为 iOS 和 watch 目标启用
标签: ios arrays swift watchkit apple-watch