【发布时间】:2015-07-25 00:03:31
【问题描述】:
有人知道为什么 Xcode 无法识别我为实体设置的属性吗?
在这段代码中,“authors”属性可以正常工作:
func createBook() {
let entityDescription = NSEntityDescription.entityForName("Books", inManagedObjectContext: managedObjectContext!)
let book = Books(entity: entityDescription!, insertIntoManagedObjectContext: managedObjectContext)
book.name = bookName.text
book.author = authorField.text
managedObjectContext?.save(nil)
}
然而,在我的 TableViewController 的一个函数中,它说“书”没有属性“作者”:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! UITableViewCell
let book: AnyObject = newBookViewController.fetchedResultsController.objectAtIndexPath(indexPath)
cell.textLabel?.text = book.name
cell.detailTextLabel?.text = book.author
return cell
此外,当我在实体检查器中向我的 Books 实体添加更多属性时,即使是第一个函数也无法识别它们。另外,这是一次保存多个属性的正确方法吗?
func bookFetchRequest() -> NSFetchRequest {
let fetchRequest = NSFetchRequest(entityName: "Books")
let nameSortDescriptor = NSSortDescriptor(key: "name", ascending: true)
let authorSortDescriptor = NSSortDescriptor(key: "author", ascending: true)
fetchRequest.sortDescriptors = [nameSortDescriptor]
fetchRequest.sortDescriptors = [authorSortDescriptor]
return fetchRequest
}
【问题讨论】: