2

我有大约六张来自旧版 Web 服务器的表。这些表都有一个“类型”列。我需要在应用程序级别保持这些列名同步。

使用 mogenerator,它创建的基类尽职尽责地生成setPrimitiveType属性。好吧,Apple 不喜欢这种方法并拒绝了我们的应用程序。

是否可以将 mogenerator 更改为不创建模型属性的某些方法?

4

2 回答 2

1

是的,可以微调 mogenerator 创建的内容。这是通过更新机器文件模板中的条目来完成的。例如,可以从 machine.h 模板文件中注释掉以下行。

- (void)setPrimitive<$Attribute.name.initialCapitalString$>:(<$Attribute.objectAttributeType$>)value;

- (void)setPrimitive<$Attribute.name.initialCapitalString$>Value:(<$Attribute.scalarAttributeType$>)value_;

前者是常规访问者。后者是标量访问器,如果需要,它甚至可以重命名。

但是,请注意 Core Data 框架而不是 mogenerator 正在生成 Apple Docs Core Data Programming Guide指出的基本访问器:

例如,给定一个具有 firstName 属性的实体,Core Data 会自动生成 firstName、setFirstName:、primitiveFirstName 和 setPrimitiveFirstName:。Core Data 甚至对由 NSManagedObject 表示的实体也是如此。要在调用这些方法时抑制编译器警告,您应该使用 Objective-C 2.0 声明的属性功能,如“声明”中所述。</p>

于 2013-05-28T18:15:53.463 回答
0

我对“类型”关键字有同样的问题。我的解决方案是手动创建和实施方法,例如

- (NSNumber *)primitiveType;
- (void)setPrimitiveType:(NSNumber *)value_;
于 2016-01-04T14:37:05.647 回答