我有大约六张桌子来自一个遗留的web服务器。这些表都有一个"type“列。我需要将这些列名保持在应用程序级别上的同步。
使用mogenerator,它创建的基类将尽职尽责地生成一个setPrimitiveType属性。苹果不喜欢这种方法,拒绝了我们的应用程序。
是否有可能改变模型生成器,而不创建模型属性的某些方法?
发布于 2013-05-28 18:15:53
是的,这是有可能微调什么发动机创造。这是通过更新机器文件模板中的条目来完成的。例如,下面的行可以从machine.h模板文件中注释掉。
- (void)setPrimitive<$Attribute.name.initialCapitalString$>:(<$Attribute.objectAttributeType$>)value;
- (void)setPrimitive<$Attribute.name.initialCapitalString$>Value:(<$Attribute.scalarAttributeType$>)value_;前者是常规的访问者。后者是标量访问器,如果需要,甚至可以重命名它。
但是,请注意,正如Apple 核心数据编程指南所指出的那样,核心数据框架而不是MO生成器正在生成基本访问器
例如,给定一个具有属性firstName的实体,核心数据会自动生成firstName、setFirstName:、primitiveFirstName和setPrimitiveFirstName:。即使对于由NSManagedObject表示的实体,核心数据也是这样做的。要在调用这些方法时抑制编译器警告,应该使用Object-C2.0声明的属性特性,如“声明”中所述。
发布于 2016-01-04 14:37:05
我对“type”关键字也有同样的问题。我的解决方案是手动创建和实现方法,如
- (NSNumber *)primitiveType;
- (void)setPrimitiveType:(NSNumber *)value_;https://stackoverflow.com/questions/11121981
复制相似问题