我试图找到满足谓词的实体计数。根据文档和“标题”文件,这应该工作:
let fetch = NSFetchRequest<NSFetchRequestResult>(entityName: "FileRecord")
let ctx: NSManagedObjectContext = GetCtx()
let res = try ctx.count(for: fetch)
然而我得到编译错误:
Cannot invoke 'count' with an argument list of type '(for: NSFetchRequest<NSFetchRequestResult>)'
然而,当我像这样从FileRecord创建获取请求时:
let fetch: NSFetchRequest<FileRecord> = FileRecord.fetchRequest()
我收到以下错误:
Cannot convert value of type 'NSFetchRequest<FileRecord>' to expected argument type 'NSFetchRequest<NSFetchRequestResult>'
请有人知道可能出错了什么?我是一个体面的C ++语言律师,但我只是Swift的新手...
编辑:已解决 我上面的例子是错的。实际上,我的代码功能与以下内容相同:
let res: UInt64 = try ctx.count(for: fetch)
因为count返回Int,所以函数不匹配。错误消息不够具体,我不能立即看到它。感谢所有试图提供帮助的人:)