有没有人知道为什么我使用以下代码收到上述错误?
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
?
答案 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)