是否可以使用NSBatchUpdateRequest
将属性设置为nil
?将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
参数不接受可选值,因此我不能将其传递给nil
)。
3条答案
按热度按时间ruyhziif1#
当前API允许将
nil
作为常量值传递。fwzugrvs2#
这在Objective-C中似乎是正确的:
dz6r00yl3#
老问题,但这里是你在Swift中这样做的方式,在没有任何崩溃的情况下验证自己。