在CoreData中因?yàn)镸odel繼承自NSManagedObject
并且屬性類型為@dynamic
, 所以在生成Set和Get方法的時(shí)候橡类,不能使用_var
來(lái)獲取卵渴。以下為正確的使用方法:
- (NSString *)definition
{
[self willAccessValueForKey:@"definition"];
NSString *preview = [self primitiveValueForKey:@"definition"];
[self didAccessValueForKey:@"definition"];
if ([preview containsString:@"<br>"]) {
preview = [preview stringByReplacingOccurrencesOfString:@"<br>" withString:@"\n"];
}
return preview;
}
- (void)setDefinition:(NSString *)definition
{
[self willAccessValueForKey:@"definition"];
NSString *value = [definition copy];
if ([value containsString:@"<br>"]) {
value = [value stringByReplacingOccurrencesOfString:@"<br>" withString:@"\n"];
}
[self setPrimitiveValue:value forKey:@"definition"];
[self didAccessValueForKey:@"definition"];
}
在set方法中value值如果為nil也是沒(méi)有問(wèn)題的。
但是一個(gè)非常奇怪的地方就是在NSManagedObject
生成的Get和Set方法中都不能使用斷點(diǎn)未巫,不知道是不是Apple的一個(gè)bug迎卤。