使用CoreData我创建了一个实体,然后我将其子类化到它自己的文件中,其中有@propertys,然后在.m文件中有@dynamic部分。
当我想要某个从未设置过的值时,我总是使用惰性实例化,如下所示:
- (NSString *)preview {
if ([self.body length] < 200) {
_preview = self.body;
}
else {
_preview = [self.body substringWithRange:NSMakeRange(0, 200)];
}
return _preview;
}
但是我该如何使用@dynamic属性来做这件事呢?如果我做同样的事情,它会说_preview是一个未声明的属性,但它在.h文件中。我做了什么不同的事情来延迟实例化它?
发布于 2013-04-07 01:18:25
使用primitiveValueForKey:
时的See documentation
基本上:
@dynamic name;
- (NSString *)name
{
[self willAccessValueForKey:@"name"];
NSString *myName = [self primitiveName];
[self didAccessValueForKey:@"name"];
return myName;
}
- (void)setName:(NSString *)newName
{
[self willChangeValueForKey:@"name"];
[self setPrimitiveName:newName];
[self didChangeValueForKey:@"name"];
}
https://stackoverflow.com/questions/15853696
复制相似问题