美文网首页
在NSManagedObject类中实现 Get 和 Set 方

在NSManagedObject类中实现 Get 和 Set 方

作者: Ever_Blacks | 来源:发表于2017-01-03 16:46 被阅读46次

在CoreData中因为Model继承自NSManagedObject 并且属性类型为@dynamic, 所以在生成Set和Get方法的时候,不能使用_var 来获取。以下为正确的使用方法:

- (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也是没有问题的。

但是一个非常奇怪的地方就是在NSManagedObject生成的Get和Set方法中都不能使用断点,不知道是不是Apple的一个bug。

相关文章

网友评论

      本文标题:在NSManagedObject类中实现 Get 和 Set 方

      本文链接:https://www.haomeiwen.com/subject/yprnvttx.html