我有大约六张来自旧版Web服务器的表。这些表都有一个“类型”列。我需要在应用级别保持这些列名同步。
使用mogenerator,它创建的基类可以生成 setPrimitiveType 属性。好吧Apple不喜欢这种方法并且拒绝了我们的应用程序。
是否可以将生成器更改为不创建模型属性的某些方法?
答案 0 :(得分:1)
是的,可以微调mogenerator创建的内容。这是通过更新机器文件模板中的条目来完成的。例如,可以从machine.h模板文件中注释掉以下行。
- (void)setPrimitive<$Attribute.name.initialCapitalString$>:(<$Attribute.objectAttributeType$>)value;
- (void)setPrimitive<$Attribute.name.initialCapitalString$>Value:(<$Attribute.scalarAttributeType$>)value_;
前者是常规访问者。后者是标量存取器,如果需要甚至可以重命名。
但是,请注意核心数据框架而非生成器正在生成Apple Docs Core Data Programming Guide所指出的基本访问者:
例如,给定具有属性firstName的实体,Core Data会自动生成firstName,setFirstName:,primitiveFirstName和setPrimitiveFirstName:。 Core Data甚至为NSManagedObject表示的实体执行此操作。要在调用这些方法时禁止编译器警告,应使用Objective-C 2.0声明的属性功能,如“声明”中所述。
答案 1 :(得分:0)
我遇到同样的问题&#39; type&#39;关键词。 我的解决方案是手动创建和实现
等方法- (NSNumber *)primitiveType;
- (void)setPrimitiveType:(NSNumber *)value_;