Swift 在标签上显示核心数据

标签 swift core-data label schema

我想知道如何让我的应用程序使用核心数据来保存用户数据,以便在我按下标签上的“显示”时打印存储的数据(最好是字符串形式)。

谢谢。

这是我的插入函数代码;将它放在名为“显示”的标签上会是什么样子?

    @IBAction func insertStudent(_ sender: AnyObject) {
    let context = getContext()
    let entityDescription = NSEntityDescription.entity(forEntityName: "Contacts", in: context)

    let contact = NSManagedObject(entity: entityDescription!, insertInto: context) as! Contacts

    contact.name = name.text
    contact.address1 = address1.text
    contact.address2 = address2.text
    contact.city = city.text
    contact.grade = grade.text
    contact.state = state.text
    contact.zip = zip.text

    var error: NSError?

    //save the object
    do {
        try context.save()
        status.text = ("saved!")
    } catch let error as NSError  {
        status.text = ("Could not save \(error), \(error.userInfo)")
    } catch {

    }

  }

  override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
  }
}

最佳答案

我不太确定我是否理解正确,但如果你只是想尝试从 CoreData 获取数据并将其显示在标签上,你可以这样做:
确保 CoreData是进口的。添加NSFetchedResultsControllerDelegate委托(delegate)给你的类(class)并创建一个全局变量 var controller: NSFetchedResultsController<Contacts>! . 然后创建一个尝试(!)获取数据的函数:

func attemptFetch() {
    let context = getContext()
    let fetchRequest: NSFetchRequest<Contacts> = Contacts.fetchRequest()
    fetchRequest.sortDescriptors = [NSSortDescriptor(key: "name", ascending: true)]

    let controller = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: context, sectionNameKeyPath: nil, cacheName: nil)

    controller.delegate = self
    self.controller = controller

    do {
        try controller.performFetch()
    } catch {
        let error = error as NSError
        print("\(error)")
    }
}

controller.fetchedObjects现在包含一个数组,其中包含 Contacts 中的所有数据实体和 controller.fetchedObjects?[index].name您可以访问 name索引 index 处数据的属性.现在你只需要创建某种循环遍历这个数组并查找你想用 display.text = controller.fetchedObjects?[index].name 显示的数据。给你的display标签(不要忘记先调用 attemptFetch 函数)。

关于Swift 在标签上显示核心数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40557483/

相关文章:

ios - 为什么我的正则表达式中存在多个捕获组会使我的应用程序崩溃?

swift - NSFetchedResultsController 不从后台上下文(DATAStack)更新

swift - 将 CoreData 存储在 iCloud 中

ios - 如何让两个 NSManagedObject 类具有相同的父类(super class)

java - 可以在 catch block 中访问 try block 内定义的标签吗?

Core-Plot:条形图的数据标签(2 个图,2 组标签)?

python - 如何避免饼图标签在 MatPlotLib ver.2.0.2 中重叠?

ios - 删除部分 CGPath

swift - 当 SwiftUI Picker 选择更改时,有没有办法调用函数?

swift - 条形按钮项目无角半径