Я создаю приложение IOS в быстрой версии 2.0 в бета-версии xCode. Я создал собственный пользовательский класс, подклассы которого PFUser, соответствующие выдержки из класса воспроизводятся ниже.
import UIKit
class User: PFUser, Entity {
// MARK: - Declare Field Variables
@NSManaged var firstName : String
@NSManaged var lastName : String
//Several other state variables follow in the same format
///initializing a new person
init (firstName: String, lastName: String, password: String, email: String) {
super.init()
super.username = email
super.password = password
super.email = email
//set initial key-value pairs for person
self.firstName = firstName
self.lastName = lastName
// Special method to sign up new user
super.signUp()
}
// Additional methods placed here
// MARK: - Conformation to PFObjectSubclassing
override class func initialize() {
self.registerSubclass()
}
// MARK: - Conformation to Entity
func saveToDatabase() {
//Saves the new PFObject Asyncronously
self.saveInBackgroundWithBlock { (success: Bool, error: NSError?) -> Void in
if (success) { print("User \(self.username) succesfully saved to database.") }
else { print(error) }
}
}
}
Используя графический интерфейс синтаксического анализа, я убедился, что пользователи были успешно сохранены в базе данных.
Я пытаюсь получить данные с помощью класса, написанного в Appdelegate, который вызывается из Appdelegate следующим образом:
var examplePerson: User!
func funcThatIsCalled() {
var query : PFQuery = PFUser.query()!
var people = query.findObjects()
self.examplePerson = people![0] as! User
}
Это возвращает ошибку:
«Не удалось преобразовать значение типа« PFUser »(0x108326490) в« MyPersonalApp.User »(0x108323f80).»
Добавление User.registerSublass () в Appdelegate следующим образом:
User.registerSubclass()
// Initialize Parse.
Parse.setApplicationId("myAppID",
clientKey: "MyClientKey")
приводит к ошибке:
Завершение работы приложения из-за неперехваченного исключения «NSInternalInconsistencyException», причина: «Класс PFUser должен быть зарегистрирован в registerSubclass перед использованием Parse».