ios - swift iOS : EXC_BAD_INSTRUCTION

标签 ios swift

在我的主 ViewController 中,我有这个:

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)

    println("VIEW CONTROLLER DID APPEAR")

    var currentUser = PFUser.currentUser()
    println(currentUser)

    if (!currentUser) {
        self.presentLogInController()
    } else {
        println("VALID USER")
    }
}

当我运行该应用程序时,这一行会引发错误:

if (!currentUser) {

说 EXC_BAD_INSTRUCTION

但是,输出窗口显示:

VIEW CONTROLLER DID APPEAR
<PFUser:TzzzzzzaHx:(null)> {
    email = "blah@blah.bla";
    username = mmm;
}
VALID USER

鉴于代码执行超出了 XCode 所说的导致 EXC_BAD_INSTRUCTION 的行,它看起来不像是严重错误,尽管它会导致模拟器和真实设备崩溃。

关于如何调试它有什么建议吗?

找到解决方案

if let user = PFUser.currentUser() {
    println("VALID USER")
    println(user)
    println(user["email"])
    println(user["completedTour"])
    if !user["completedTour"] {
        println("NO TOUR YET")
    }
} else {
    self.presentLogInController()
}

最佳答案

if (!currentUser) ... currentUserBool 吗?不见得。你不能像在 Objective-C 中那样在 if 语句中使用非 bool 表达式

假设 PFUser.currentUser() 返回一个隐式解包的可选值,您需要检查是否为 nil。

if currentUser != nil { ... }

关于ios - swift iOS : EXC_BAD_INSTRUCTION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24174027/

相关文章:

objective-c - 带有 valueForKeyPath 的嵌套 NSDictionary 返回括号而不是 NSString

ios - objective-c : Accessing properties of an object instance that's in an array that's a property of an object

ios - Shinobi 图表条形图定制

ios - 如何更改 Apple Map (MKMapView) 的背景颜色?

Swift mac 应用程序 -> 移动光标关闭 NSWindow

iOS - MKMapView 仅显示特定缩放级别的注释

ios - 为 GoogleMap objective-c 调用 API

swift - 具有关联类型和工厂模式的协议(protocol)?

swift - 当我在文本字段中编辑文本时,NavigationLink 会激活

ios - Realm swift : Convert Results to Swift Array