Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 解析子类实例方法EXC_BAD_指令_Ios_Swift_Parse Platform_Exc Bad Access_Exc Bad Instruction - Fatal编程技术网

Ios 解析子类实例方法EXC_BAD_指令

Ios 解析子类实例方法EXC_BAD_指令,ios,swift,parse-platform,exc-bad-access,exc-bad-instruction,Ios,Swift,Parse Platform,Exc Bad Access,Exc Bad Instruction,当从parse user对象PFUser生成子类时,使用自己的方法时会出现错误的指令。你们有没有想过为什么会这样 User.swift import UIKit import Parse class User: PFUser { // Instance Variables @NSManaged var photo: PFFile // Parse Setup override class func initialize() { struct

当从parse user对象
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

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)
            }
        }
    }
}
导入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之前注册子类

在这段文字中说明了:

例如:

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

是否要覆盖方法或添加新方法?为什么要强制展开图像数据?尝试检查nil并记录任何错误conditions@GovindaraoKondala我正在尝试使用一种新方法wrote@Paulw11我在User.swift类中发布了错误的方法
uploadPhoto
。我已经更新了它,以显示我引用的方法
fetchPhoto
。哪一行导致了异常?设置异常断点或在
imageForRequest
和/或
downloadImage
函数中设置断点,然后逐步执行。