对于我的核心数据NSManagedObject
,我想确保任何NSString
属性只包含已被剪裁空白的字符串。核心数据:自动修剪字符串属性
我知道,我可以通过重写每个setter方法,像这样实现这一点:
- (void)setSomeProperty:(NSString *)someProperty
{
someProperty = [someProperty stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
if ((!someProperty && !self.someProperty) || [someProperty isEqualToString:self.someProperty]) return;
[self willChangeValueForKey:@"someProperty"];
[self setPrimitiveValue:someProperty forKey:@"someProperty"];
[self didChangeValueForKey:@"someProperty"];
}
然而,这似乎是一个大量的代码有写,尤其是因为我的管理对象是可能具有不少NSString
属性。
有没有更简单的方法?
谢谢,我会接受这个答案,因为它具有确保财产价值总是被削减的好处。另一种解决方案也是好的(重写'willSave'),但缺点是在执行保存之前属性值保持不变。 – Francis