【问题标题】:Swift Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0) [duplicate]Swift 线程 1:EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)[重复]
【发布时间】:2020-06-12 04:52:50
【问题描述】:
@IBOutlet var folderPathAC: NSArrayController!
static var appDelegate = NSApplication.shared.delegate as! AppDelegate
static var context = appDelegate.persistentContainer.viewContext
override func viewDidLoad() {
   super.viewDidLoad()
   updateUITable()
   // Do any additional setup after loading the view.
}

func updateUITable(){
        let request = NSFetchRequest<NSFetchRequestResult>(entityName: "FolderPaths")
        //request.predicate = NSPredicate(format: "age = %@", "12")
        request.returnsObjectsAsFaults = false
        do {
            let result = try ViewController.context.fetch(request)
            for data in result as! [NSManagedObject] {
                let name = data.value(forKey: "folderName") as! String
                let path = data.value(forKey: "folderPath") as! String
                let folder = FolderPath(path: path, name: name)
                self.folderPathAC.addObject(folder)
          }
            
        } catch {
            
            print("Failed")
        }
    }

我正在使用上述代码在 macOS 应用程序中启动应用程序时填充表格视图。但是,我在运行时的 AppDelegate 类中遇到以下异常。

线程 1:EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)

我是 Mac 开发的新手。

【问题讨论】:

  • 我看到至少四个感叹号。其中任何一个都意味着“让我崩溃”。

标签: ios swift xcode macos nstableview


【解决方案1】:

最常见的原因是:

未能解包一个可选项——这可以是一个强制解包 (!) 或一个隐式解包(访问一个隐式解包的可选项,它是 nil)。

一个失败的强制转换(as!),要么是因为值是 nil 可选,要么是因为值的类型错误。

【讨论】:

    猜你喜欢
    • 2017-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多