gpt4 book ai didi

ios - 类型 "Entity"的值没有成员 'text'

转载 作者:行者123 更新时间:2023-11-28 08:32:15 25 4
gpt4 key购买 nike

我正在制作一个基本的笔记应用程序。我似乎无法更改代码中属性的文本。有什么建议吗?

import UIKit
import CoreData

class NoteInputTableViewController: UITableViewController, UINavigationControllerDelegate {

var listItem: List?

let managedObjectContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext

@IBOutlet weak var inputNoteLabel: UITextField!

func navigationController(navigationController: UINavigationController, willShowViewController viewController: UIViewController, animated: Bool) {

if let item = listItem {
listItem.text = inputNoteLabel.text
} else {
let newItem = NSEntityDescription.insertNewObjectForEntityForName("List", inManagedObjectContext: managedObjectContext) as! List
newItem.text = inputNoteLabel.text
}

if let controller = viewController as? NoteHomeTableViewController {
controller.items = [items!]
}
}





override func viewDidLoad() {
super.viewDidLoad()
navigationController?.delegate = self

} // viewDidLoad end

}

在我的 navigationController 中,我试图更改我的 listItem 的文本,但似乎无法这样做。

下面是我的 List+CoreDataProperties.swift 文件:

import Foundation
import CoreData

extension List {

@NSManaged var note: String?
@NSManaged var completionDate: NSDate?

}

下面是我的 NoteHomeTableViewController.swift 文件:

import UIKit
import CoreData

class NoteHomeTableViewController: UITableViewController, MyCellDelegate { // will need a delegate

var items: [List] = []

let managedObjectContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext

@IBAction func composeButtonPressed(sender: UIBarButtonItem) {
performSegueWithIdentifier("CellDetailSegue", sender: nil)
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let destination = segue.destinationViewController as! NoteInputTableViewController
if let ip = sender as? NSIndexPath {
destination.listItem = items[ip.row]

}
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return items.count
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("MyCell") as! MyCell

cell.indexPath = indexPath
cell.item = items[indexPath.row]
cell.delegate = self


return cell
}

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

performSegueWithIdentifier("CellDetailSegue", sender: indexPath)
}

func myCell(myCell: MyCell, didPressBackItem: List,
atIndexPath indexPath: NSIndexPath) {

}

override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
let item = items[indexPath.row]
managedObjectContext.deleteObject(item)
do {
try managedObjectContext.save()
} catch {
print("error saving")
}
fetchItems()
tableView.reloadData()

}

override func viewDidLoad() {
super.viewDidLoad()

} // viewDidLoad end

override func viewDidAppear(animated: Bool) {
super.viewDidAppear(true)

fetchItems()
tableView.reloadData()
} // viewDidAppear end

func fetchItems() {
let request = NSFetchRequest(entityName: "List")
items = []
do {
let response = try managedObjectContext.executeFetchRequest(request) as! [List]
for item in response {
items.append(item)
}
} catch {
print("Error fetching data!")
}
} // fetch end

} // class end

最佳答案

我没看到你在哪里初始化 listItem

我建议

} else {
let newItem = NSEntityDescription.insertNewObjectForEntityForName("List", inManagedObjectContext: managedObjectContext) as! List
newItem.text = inputNoteLabel.text
}

大概应该变成

} else {
let newItem = NSEntityDescription.insertNewObjectForEntityForName("List", inManagedObjectContext: managedObjectContext) as! List
listItem = newItem
newItem.text = inputNoteLabel.text
}

关于ios - 类型 "Entity"的值没有成员 'text',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38642056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com