我创建了一个自定义运算符,只有在它不同时才更改值:
func ?!=<T:Equatable> (inout lhs:T?, rhs:T?) {
if lhs != rhs {
lhs = rhs
}
}
我这样用过:
eventMO.id ?!= eventObject.id
在我的NSFetchedResultsControllerDelegate
controller(_:didChangeObject:atIndexPath:forChangeType:newIndexPath:)
返回NSFetchedResultsChangeType.Move
时,当值相同时,实际上应该没有任何内容。
我使用调试器测试过,左手参数在我的测试用例中没有被修改。
所以我猜测:inout运算符是否会触发NSManagedObject
上的更改?