核心数据:无法找到成员executeFetchRequest

时间:2014-08-04 14:46:48

标签: objective-c core-data swift nsmanagedobjectcontext

有没有人知道为什么我使用以下代码收到上述错误?

var moc:NSManagedObjectContext? = managedObjectContext!;
var req:NSFetchRequest = NSFetchRequest();
var ent:NSEntityDescription = NSEntityDescription.entityForName(entityName, inManagedObjectContext: moc);
req.entity = ent;
var err:NSError? = nil;
var result = moc!.executeFetchRequest(req, error: err);

我已经使用此错误消息检查了另一张SO票证,但无法弄明白。从result推断moc!.executeFetchRequest(作为NSArray),方法签名似乎正确,为什么它不能在executeFetchRequest上找到moc

1 个答案:

答案 0 :(得分:4)

错误消息具有误导性。您必须传递错误变量的地址

var err:NSError? = nil
var result = moc!.executeFetchRequest(req, error: &err)

我似乎没有必要将本地上下文变量定义为可选, 并且如果可以从中暗示它,则不必指定变量类型 上下文。所以你的代码可以简化为

let moc = managedObjectContext!
let req = NSFetchRequest(entityName: entityName)
var err:NSError? = nil
let result = moc.executeFetchRequest(req, error: &err)