我有以下的数据库,将NSManagedObject从一个类传递给Swift编程语言中的其他类?
我有以下的员工NSManagedObject类。
进口基金会 进口CoreData
class Employee: NSManagedObject {
@NSManaged var age: NSNumber
@NSManaged var firstName: String
@NSManaged var gender: String
@NSManaged var lastName: String
@NSManaged var salary: NSNumber
}
我对其中包含5个UITextFields和一个UIButton的在数据库中添加值UIViewController类。
如果我insertValue在同一个班级,像
let employee:Employee = NSEntityDescription.insertNewObjectForEntityForName("Employee", inManagedObjectContext: self.managedObjectContext!) as Employee
它工作正常,但我跟对象应用程序的面向结构,并提出了DatabaseManager.swift类,
所以现在发我面临的是将Controller类中的NSManagedObject传递给DatabaseManager类。
我编码如下,但它给错误。
@IBAction func addToDatabase(sender: UIButton) {
println("Add to Database is clicked")
var employee:Employee = Employee() //Employee is subclass of NSManagedObject
employee.firstName = textfield_firstName.text
employee.lastName = textfield_lastName.text
employee.gender = textfield_gender.text
employee.age = (textfield_age.text as String).toInt()!
employee.salary = (textfield_salary.text as String).toInt()!
var databaseManager:DatabaseManager = DatabaseManager()
databaseManager.saveEmployee(employee)
}
错误:
2014-11-06 10:34:46.710 CoreDataWithSwift[588:9220] CoreData: error: Failed to call designated initializer on NSManagedObject class 'CoreDataWithSwift.Employee'
2014-11-06 10:34:46.736 CoreDataWithSwift[588:9220] -[CoreDataWithSwift.Employee setFirstName:]: unrecognized selector sent to instance 0x7fa269e20800
2014-11-06 10:34:46.756 CoreDataWithSwift[588:9220] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[CoreDataWithSwift.Employee setFirstName:]: unrecognized selector sent to instance 0x7fa269e20800'
感谢。
请参阅http://stackoverflow.com/a/23835907/1187415。这是针对Objective-C的,但底层问题是相同的。 – 2014-11-06 06:47:47