【发布时间】:2015-09-27 19:38:20
【问题描述】:
一个联系人可以属于一个类别,一个类别可以有多个联系人。创建联系人时,我想访问联系人中的类别。 我的关系正确吗?
我收到以下错误“无法分配 'String!' 类型的值!到此字段中的“类别”类型的值: newContact.category = categoryField.text
这就是我尝试访问我的类别字段的方式:
// MARK: - Properties
var contact: Contact?
func createCategory() {
let entity = NSEntityDescription.entityForName("Category", inManagedObjectContext: context!)
let category = Category(entity: entity!, insertIntoManagedObjectContext: context)
let index = pickerView.selectedRowInComponent(0)
let color = categoryColor[index]
category.name = name.text
category.descript = descriptionField.text
category.color = color
println(category.name)
context?.save(nil)
name.text = ""
descriptionField.text = ""
}
func createNewContact() {
let entity = NSEntityDescription.entityForName("Contact", inManagedObjectContext: context!)
let newContact = Contact(entity: entity!, insertIntoManagedObjectContext: context)
newContact.name = nameField.text
newContact.email = emailField.text
newContact.phone = phoneField.text
newContact.category = categoryField.text
newContact.photo = UIImageJPEGRepresentation(imageHolder.image, 1)
var error: NSError?
context?.save(&error)
}
And that's how my entities look like:
@objc (Contact)
class Contact: NSManagedObject {
@NSManaged var email: String
@NSManaged var name: String
@NSManaged var phone: String
@NSManaged var photo: NSData
@NSManaged var category: Category
}
和
@objc (Category)
class Category: NSManagedObject {
@NSManaged var color: AnyObject
@NSManaged var descript: String!
@NSManaged var name: String!
@NSManaged var contact: NSOrderedSet
}
【问题讨论】: