是否可以使用myfolder= "C:\\Test Programs\\ \\";
将属性设置为nil
?将NSBatchUpdateRequest
传递给NSNull()
无效:
propertiesToUpdate
我没有收到任何错误,但不清楚日期。
我也尝试将其设置为let unlockRequest = NSBatchUpdateRequest(entityName: "MyEntity")
unlockRequest.predicate = NSPredicate(format: "self in %@", myObjectIDs)
unlockRequest.propertiesToUpdate = ["lockDate": NSNull()]
var error: NSError?
myContext.executeRequest(unlockRequest, error: &error)
if let error = error {
log.error("Failed to unlock: \(error)")
}
,但这也不起作用(NSExpression(forConstantValue: NSNull())
参数不接受可选值,因此我无法传递forConstantValue
)。
答案 0 :(得分:1)
当前API允许将nil
作为常量值传递。
unlockRequest.propertiesToUpdate = ["lockDate": NSExpression(forConstantValue: nil)]
答案 1 :(得分:0)
这似乎在Objective-C中正常工作:
NSBatchUpdateRequest *batch = [[NSBatchUpdateRequest alloc] initWithEntityName:entityName];
NSExpression *value = [NSExpression expressionForConstantValue: nil];
batch.propertiesToUpdate = @{@"lockDate": value};
batch.resultType = NSUpdatedObjectsCountResultType;
NSError *error;
NSBatchUpdateResult *results = [self.privateContext executeRequest:batch error:&error];