Работаю с CoreData. Текст не отображается в таблице при передаче из TextView в ячейку. Весь мозг себе сломал, гугл молчит. Подскажите кто знает.
ViewController
import UIKit
import CoreData
class NewViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
let newManagedContext = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
var messages: [MessageEntitty] = []
@IBOutlet weak var tablr: UITableView!
@IBOutlet weak var text: UITextView!
override func viewDidLoad() {
super.viewDidLoad()
self.tablr.delegate = self
self.tablr.dataSource = self
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
fetchData()
}
@IBAction func button(_ sender: Any) {
text.text .isEmpty ? alert() : actiontForText()
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return messages.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
cell.textLabel?.text = messages[indexPath.row].name
cell.textLabel?.lineBreakMode = .byWordWrapping
return cell
}
private func alert(){
let alert = UIAlertController(title: "No Text", message: "Print your message", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "Ok", style: .cancel))
present(alert, animated: true)
}
private func actiontForText(){
guard let message = text.text, !message.isEmpty else { return }
self.save(message)
text.text = ""
}
}
CoreData
import Foundation
import CoreData
extension NewViewController {
func save(_ newMessage: String){
guard let entityDescription = NSEntityDescription.entity(forEntityName: "MessagesEntity", in: newManagedContext) else { return }
let message = NSManagedObject(entity: entityDescription, insertInto: newManagedContext)
as! MessageEntitty
message.name = newMessage
do{
try newManagedContext.save()
messages.append(message)
self.tablr.insertRows(at: [IndexPath(row: messages.count-1, section: 0)], with: .automatic)
// self.tablr.scrollToRow(at: IndexPath(row: messages.count-1, section: 0), at: .bottom, animated: true)
} catch let error {
print(error.localizedDescription)
}
}
func fetchData(){
let fetchRequest: NSFetchRequest<MessageEntitty> = MessageEntitty.fetchRequest()
do {
messages = try newManagedContext.fetch(fetchRequest)
} catch let error {
print(error.localizedDescription)
}
}
}
Есть второй контроллер. Там все работает (разница в том что во втором текст передается из алерта, а здесь из TextView). Переписал все символ в символ, но не пойму где неправильно