Swift:无法使用正确的参数调用方法?
我试图找到满足谓词的实体数。根据文档和“标题”文件,这应该可以:Swift:无法使用正确的参数调用方法?,swift,core-data,Swift,Core Data,我试图找到满足谓词的实体数。根据文档和“标题”文件,这应该可以: let fetch = NSFetchRequest<NSFetchRequestResult>(entityName: "FileRecord") let ctx: NSManagedObjectContext = GetCtx() let res = try ctx.count(for: fetch) 由于count返回Int,因此函数不匹配。错误消息不够具体,我无法立即看到它。感谢所有试图帮助我的人:)我无法重
let fetch = NSFetchRequest<NSFetchRequestResult>(entityName: "FileRecord")
let ctx: NSManagedObjectContext = GetCtx()
let res = try ctx.count(for: fetch)
由于count返回Int,因此函数不匹配。错误消息不够具体,我无法立即看到它。感谢所有试图帮助我的人:)我无法重现这个问题。那是你真正的密码吗?是否在do/catch上下文中调用了
try
?您需要将GetCtx()
的代码放入,请用代码更新您的问题。并且FileRecord
不是NSFetchRequest
的NSManagedObject
,请更新上面请求的代码,以便我可以帮助Martin R是的,try在do/catch上下文中调用。Santos,GetCtx()只是一个伪函数,实际上我只是有一个NSManagedObjectContext类型的变量,我将其用于其他目的,并且正常工作。在Santos中,FileRecord是核心数据中实体的名称,因此为其生成了Swift类。它的static fetchRequest()方法返回实际的获取请求。一般来说,我的问题是,尽管我匹配了方法的签名,但它表示我无法调用它。我不知道如何处理这些信息。我无法重现这个问题。那是你真正的密码吗?是否在do/catch上下文中调用了try
?您需要将GetCtx()
的代码放入,请用代码更新您的问题。并且FileRecord
不是NSFetchRequest
的NSManagedObject
,请更新上面请求的代码,以便我可以帮助Martin R是的,try在do/catch上下文中调用。Santos,GetCtx()只是一个伪函数,实际上我只是有一个NSManagedObjectContext类型的变量,我将其用于其他目的,并且正常工作。在Santos中,FileRecord是核心数据中实体的名称,因此为其生成了Swift类。它的static fetchRequest()方法返回实际的获取请求。一般来说,我的问题是,尽管我匹配了方法的签名,但它表示我无法调用它。我不知道该怎么处理这些信息。
Cannot invoke 'count' with an argument list of type '(for: NSFetchRequest<NSFetchRequestResult>)'
let fetch: NSFetchRequest<FileRecord> = FileRecord.fetchRequest()
Cannot convert value of type 'NSFetchRequest<FileRecord>' to expected argument type 'NSFetchRequest<NSFetchRequestResult>'
let res: UInt64 = try ctx.count(for: fetch)