CoreData - 获取代码 swift3

Posted

技术标签:

【中文标题】CoreData - 获取代码 swift3【英文标题】:CoreData - fetch code swift3 【发布时间】:2016-10-16 17:38:51 【问题描述】:

下面不工作抛出错误,请帮助如何编写代码以从用户实体中获取数据。

附屏enter image description here

【问题讨论】:

错误是什么?还将您有问题的代码发布为文本,而不是图片。 对您有帮助吗? 【参考方案1】:

抓取appDelegate 对象和context

let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext

在 Core Data 中添加记录

let user = NSEntityDescription.insertNewObject(forEntityName: "UsersClass", into: context) as! UsersClass
user.userName = "Rajan"
appDelegate.saveContext()

正在抓取

let fetchRequest:NSFetchRequest<UsersClass> = UsersClass.fetchRequest()

然后执行这个请求

do 
    let searchResults = try context.fetch(fetchRequest)
    for trans in searchResults 
        print(trans.username!)
    

catch 
    //Handle error

UsersClass+CoreDataProperties.swift

import Foundation
import CoreData

extension UsersClass 

    @nonobjc public class func fetchRequest() -> NSFetchRequest<UsersClass> 
        return NSFetchRequest<UsersClass>(entityName: "UsersClass");
    

    @NSManaged public var userName: String?


这是我制作的Sample。

【讨论】:

*** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“executeFetchRequest:错误: 不是有效的 NSFetchRequest。” ***首先抛出呼叫堆栈:(0 Corefoundation 0x00000001105E534B __ExceptionPrepRocess + 171 1 Libobjc.a.Dylib 0x000000010D51121E OBJC_Excepion_Throw + 48 2 CoreData 0x00000001d9d4f6c - [nsmanagedobjectContext executefetchrequest:错误:] + 4972 3 libswiftcoreata.dylib 0x000000010fb37e78 span> 至少在其中添加一些记录然后它将获取 .还显示您的托管对象类,即用户类 你能分享创建和获取数据的代码吗....我是 swift ios 新手 @Srini 对你有帮助吗 它帮了我一个大忙。我不知道您的代码中有多少问题,但您至少需要将 NSFetchRequestResult 更改为您的自定义类的名称

以上是关于CoreData - 获取代码 swift3的主要内容,如果未能解决你的问题,请参考以下文章

CoreData(MagicalRecord) 获取保存的对象

coredata 获取数组的元素

UITableView 与 Xcode,获取 CoreData 问题

从 CoreData 中的 TextField 保存和获取

获取 SwiftUI CoreData 关系

如何从coredata中的实体获取过滤数据