GRMustache核心数据类别不可见?

时间:2014-12-17 13:15:53

标签: objective-c core-data mustache template-engine objective-c-category

我有一堆核心数据模型'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

1 个答案:

答案 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; 
}