非常奇怪 Xcode 项目错误?

very weird Xcode project bug?

我正在尝试将一些 JSSAlertView 集成到我的 ViewController 之一中,但由于某些奇怪的原因,当我 运行 我的项目时,警报视图不显示.因此,为了确保编码没有任何错误,我创建了一个精确的伪项目来复制我原始项目的 ViewController,一直到故事板上的 UI 元素。我将原始项目中的确切代码复制到新的 ViewController、运行 上,一切正常。我坚持弄清楚,为什么它不能在我原来的项目上工作?

这是我使用的逻辑:

@IBAction func resetPass(sender: AnyObject) {
        actview.hidden = false
        actview.startAnimating()

        PFUser.requestPasswordResetForEmailInBackground(emailReset.text) {
            (success:Bool, error:NSError?) ->Void in

            if(success){

                let yesMessage = "Email was sent to you at \(self.emailReset.text)"

                dispatch_async(dispatch_get_main_queue()) {

                    self.actview.stopAnimating()

                    JSSAlertView().success(self, title:"Great Success", text:yesMessage)

        }
    }

            if(error != nil){

                let errorMessage:String = error!.userInfo!["error"] as! String

                dispatch_async(dispatch_get_main_queue()) {

                    self.actview.stopAnimating()

                    JSSAlertView().warning(self, title:"Woah There", text:errorMessage)
                }
            }
        }
    }

我在 JSSAlertView 之一的调用上设置了一个断点,在我的控制台中扩展了该元素并得到了这个:

这是内存管理错误吗?它们不可见的原因是什么?我该如何解决这个问题?

这里是Git,如果你想看看,太棒了:https://github.com/stakes/JSSAlertView

任何与 UI 相关的事情都需要在主线程上完成,并且您正在后台线程 上调用 Parse 函数 (通过 requestPasswordResetForEmailInBackground).

所以要让您的提醒出现在主线程上,:

@IBAction func resetPass(sender: AnyObject) {

    actview.hidden = false
    actview.startAnimating()

    PFUser.requestPasswordResetForEmailInBackground(emailReset.text) {
        (success:Bool, error:NSError?) ->Void in

        if(success){
            self.actview.stopAnimating()

            let yesMessage = "Email was sent to you at \(self.emailReset.text)"
            dispatch_async(dispatch_get_main_queue()) {
                self.successMessage(yesMessage)
            }
        };

        if(error != nil){

            self.actview.stopAnimating()

            let errorMessage:String = error!.userInfo!["error"] as! String
            dispatch_async(dispatch_get_main_queue()) {
                self.failureMessage(errorMessage)
            }
        }
    }
}

看到我添加的“dispatch_async(dispatch_get_main_queue())”行了吗?