Разобрать PFUser, не регистрирующий подкласс

Я пытаюсь использовать Parse PFUser в программном обеспечении для рабочего стола OSX. Когда я пытаюсь использовать его PFUser.query(), он выдает сообщение: Failed to set (contentViewController) user defined inspected property on (NSWindow): The class PFUser must be registered with registerSubclass before using Parse.

Это происходит без регистрации класса.

Я попытался зарегистрировать класс следующим образом: PFUser.registerSubclass(), но он все еще не работает.

Я буду использовать PFUser по умолчанию, не добавляя к нему никаких полей, поэтому мне не нужно создавать собственный класс, который будет моим PFUser.

Я пытался использовать PFUser.enableAutomaticUser() безуспешно

Код ниже:

AppDelegate.swift

import Cocoa

import Parse
import Bolts

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

    let APP_ID = "app_id"
    let CLIENT_KEY = "client_key"
    let SERVER = "https://parseserver.com/"

    func applicationDidFinishLaunching(_ aNotification: Notification) {

        PFUser.registerSubclass()

        let configuracaoParse = ParseClientConfiguration {
            $0.applicationId = self.APP_ID
            $0.clientKey = self.CLIENT_KEY
            $0.server = self.SERVER
        }

        Parse.initialize(with: configuracaoParse)
    }

    func applicationWillTerminate(_ aNotification: Notification) {
        // Insert code here to tear down your application
    }
}

ViewController.swift

import Cocoa

import Parse

class ViewController: NSViewController {

    @IBOutlet weak var emailTextField: NSTextField!
    @IBOutlet weak var senhaSecureTextField: NSSecureTextField!

    override func viewDidLoad() {
        super.viewDidLoad()

        contaUsuarios()
    }

    override var representedObject: Any? {
        didSet {
        // Update the view, if already loaded.
        }
    }

    @IBAction func entrarButtonClicked(_ sender: NSButton) {

    }

    func contaUsuarios() {

        let query = PFUser.query()

        query?.countObjectsInBackground(block: {
            (count, error) -> Void in

            let numeroUsers = Int(UInt32(count))

            if numeroUsers > 0 {

            }

            print(numeroUsers)
        })
    }
}

person GuiDupas    schedule 18.08.2017    source источник


Ответы (1)


Прочитав некоторый контент в Интернете, я обнаружил, что в OSX ViewController запускается до завершения загрузки AppDelegate, поэтому я инициализировал соединение Parse и подклассы в ViewController's viewDidLoad вместо AppDelegate, и он работает нормально.

person GuiDupas    schedule 30.08.2017