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

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

附屏enter image description here

【问题讨论】:

  • 错误是什么?还将您有问题的代码发布为文本,而不是图片。
  • 对您有帮助吗?

标签: swift3 nsfetchrequest


【解决方案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 更改为您的自定义类的名称
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-04
  • 1970-01-01
  • 1970-01-01
  • 2011-12-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多