ios - 解析子类实例方法 EXC_BAD_INSTRUCTION

标签 ios swift parse-platform exc-bad-access exc-bad-instruction

当从解析用户对象 PFUser 进行子类化时,我在使用自己的方法时遇到了错误指令错误。你们有什么想法为什么会发生这种情况

User.swift

import UIKit
import Parse

class User: PFUser {

    // Instance Variables
    @NSManaged var photo: PFFile

    // Parse Setup
    override class func initialize() {
        struct Static {
            static var onceToken : dispatch_once_t = 0;
        }
        dispatch_once(&Static.onceToken) {
            self.registerSubclass()
        }
    }

    // Instance Methods
    func fetchPhoto(callback: (image: UIImage) -> Void) {
        guard let url = self.photo.url else {
            return
        }

        let request = NSURLRequest(URL: NSURL(string: url)!)

        if let image = Globals.imageCache.imageForRequest(request) {
            callback(image: image)
            return
        }

        Globals.imageDownloader.downloadImage(URLRequest: request) { response in
            if let image: UIImage = response.result.value {
                callback(image: image)

                Globals.imageCache.addImage(image, forRequest: request)
            } else {
                print(response)
            }
        }
    }
}

ViewController.swift

导入UIKit

class ProfileHeaderController: UIViewController {

    @IBOutlet weak var avatarButton: UIButton!
    @IBOutlet weak var userLabel: UILabel!
    @IBOutlet weak var nameLabel: UILabel!

    private var user = User.current()

    func updateHeader() {
        self.userLabel.text = self.user.username
        self.nameLabel.text = self.user.fullName

        self.user.fetchPhoto { (image) -> Void in
            self.avatarButton.setImage(image, forState: .Normal)
        }
    }
}

最佳答案

是的,您需要在 Appdelegate 中或在调用 Parse.setApplicationId 之前注册子类

这一段文字指出:https://parse.com/docs/ios/guide#objects-subclasses

示例:

Appdelegate.swift
....
User.registerSubclass()
Parse.setApplicationId("appid", clientId:"clientid")

关于ios - 解析子类实例方法 EXC_BAD_INSTRUCTION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34436163/

相关文章:

ios - parse.com key 类型无效,需要映射,但得到数组

ios - 当 BLOC 中的流值发生变化时导航到新屏幕

ios - 编译器标志 -fno-objc-arc 在 Swift 中不起作用

json - 如何使用来自 API 调用的动态变量解码嵌套的 JSON 结构

与 Parse Cloud 代码通信的 Swift/Stripe 错误

android - 解析 com 删除 android 应用程序上的数据库

ios - 获取 SIGABRT 错误

ios - '[字符串 ]' is not convertible to ' [NSString]'

ios - 奇怪的 SpriteKit 帧速率下降 - 怀疑挥之不去的 SKPhysicsBody 实例

java - 无法从 Android 应用程序中删除解析对象