我有一堆核心数据模型'NSManagedObject子类',每个子类都有几个类别。 我希望模板使用模型类别中的属性,这是我所理解的,因为:
[model valueForKey:@"attributeName"];
实际上是返回所需的值!
但是当我在胡子模板中评估它时,它返回一个空字符串!!
所以这段代码片段返回一个空字符串:
NSString *template = @"{{# experiences }}{{experienceElement}}{{/ experiences }}";
return [GRMustacheTemplate renderObject:self fromString:template error:nil];
其中self是另一个模型的类别,它具有作为属性的经验(NSSet),而experienceElement是一个在Experience Model的类别中返回字符串的函数。
但是当我将ExperienceElement替换为体验模型中的真实属性时它会起作用!
这个实施有什么问题?
注意:这是一个可可mac应用程序,使用libGRMustache7-MacOS.a
答案 0 :(得分:1)
从{7.0}开始,为了security
引入了新的safe key access约束来限制只有类属性的键
解决方案是在类别中使用方法名称
声明只读属性在category_file.h
@property (nonatomic, readonly) NSString * experienceElement
在category_file.m
-(NSString*) experienceElement
{
NSString *newValue = @"";//derive new value
return newValue;
}