问题标签 [mogenerator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4758 浏览

objective-c - Core Data 中的“原始”访问器是什么?

核心数据编程指南(我的重点):

默认情况下,Core Data 为托管对象类的建模属性(属性和关系)动态创建高效的公共原始get 和 set 访问器方法。

虽然自从我开始使用 Objective-C 以来,我一直在愉快地使用 Core Data 和mogenerator,但我从来没有看过这意味着什么,直到由于涉嫌使用私有 API 而导致应用提交被拒绝。关于生成setPrimitiveTypeValue:方法的长篇故事,但不是我的问题。

在阅读指南时,我偶然发现了实体属性的公共和原始访问器的想法。另一个引用,但更进一步:

例如,给定一个具有属性 的实体firstName,Core Data 会自动生成firstNamesetFirstName:primitiveFirstNamesetPrimitiveFirstName:

原始访问器有什么用?只是为了让您可以直接分配一个 BOOL 值,而无需将其包装在 NSNumber 中吗?如果是这样,为什么 mogenerator 会遇到生成各种<Attribute>Value, set<Attribute>Value:, primitive<Attribute>Value,setPrimitive<Attribute>Value:访问器的麻烦?

我很困惑,谁能帮帮我?


相关问题:

0 投票
2 回答
1773 浏览

objective-c - 如何使用 Doxygen 记录在不同文件中声明的属性?

我使用mogenerator生成核心数据类。Mogenerator 生成机器类和人类类。开发人员不应该修改机器生成的类,因为每次调用 mogenerator 时都会生成这些类。然而,人类类可以根据开发人员的喜好进行修改。

机器类包含核心数据实体的每个属性的声明。在 Doxygen 中,如何从文件 B 中记录文件 A 中定义的属性?

编辑:添加示例来说明问题

例子:

最终,这里的目标与下面的示例类似。

FileA.h(不能修改)

文件B.h

尝试过(@interface FileB @end bock 内的文档块):

@property myProperty - Doxygen 没有将文档与属性相关联。

\property myProperty - Doxygen 不会将文档与属性相关联。

@property FileA::myProperty - Doxygen 不会将文档与属性关联并生成;警告:没有为 FileB::myProperty 找到唯一匹配的类成员

\property FileA::myProperty - 同上

解决方案

文件B.h

0 投票
5 回答
1151 浏览

ios - 如何将类型安全的结构类型核心数据属性与 mogenerator 一起使用?

对于 NSKeyValueCoding 可以处理的结构类型的属性,我使用此处Apple 文档中描述的核心数据访问器模式。

例如,可以在 Core Data 模型中将 NSRange 结构指定为 Transformable 类型,然后可以通过在以下形式的 NSManagedObject 子类中提供访问器来避免客户端的 NSValue 繁琐:

界面:

执行;

然而,Mogenerator 生成的 NSManagedObject 子类将 Transformable 属性声明为 NSObject 属性,因此客户端需要获取/设置 NSValues。

使用 mogenerator 处理这种情况的最佳方法是什么,同时 (1) 保持简单的 Transformable 模式而不是弄乱瞬态支持属性,以及 (2) 避免对 Mogenerator 的“机器”类进行任何编辑?

0 投票
1 回答
686 浏览

ios - 发电机ios

我安装了Mogenerator。现在我该怎么办?我该如何使用它?

我遇到的第一个问题是我不知道检查复选框“仅在安装时运行脚本”是否为 mogenerator ?

0 投票
1 回答
5202 浏览

objective-c - 扩展核心数据生成的 NSManagedObject 类

我第一次处理 Core Data,我想知道扩展 Xcode 为我的 NSManagedObject 实体生成的类的最佳实践是什么。

我看到了mogenerator并且我也一直在使用与SUPER HAPPY EASY FETCHING IN CORE DATA中建议的方法类似的方法。所以我有三种课程:

  • EasyFetching 类(只有一个类);
  • 一个生成的 NSManagedObject 子类(即:_Entity);
  • 具有一些自定义方法的自定义子类,例如查找所有非活动对象、清除对象的缓存等(即:实体)。

这种方法让我可以编写一些自定义代码,同时我可以重构我的核心数据实体并根据需要多次生成它。但是我也遇到了一些问题,比如无法为我的实体声明对象级方法(因为 NSManagedObjectContext 只知道我的 _Entity 类)。

现在我正在使用类别来扩展我的实体功能。这工作得更好,因为我可以有自定义对象级别的方法。我现在有三种类:

  • EasyFetching 类别(因为它有很多我所有的自定义代码都使用的方法);
  • 一个生成的 NSManagedObject 子类(即:Entity);
  • 我的 NSManagedObject 实体的自定义类别(即:Entity+Custom.h)。

我的问题是:你会推荐什么?

提前感谢您的回答

0 投票
2 回答
546 浏览

reserved-words - Mogenerator 和 setPrimitiveType

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

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

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

0 投票
1 回答
238 浏览

objective-c - 发电机上的新对象

我是使用 Mogenerator 的新手(看起来很棒!)。我只是不知道等效的句子如何: NSManagedObject *mo = [NSEntityDescription ...]

我应该如何在 Mogen 中创建新对象?

提前致谢。

0 投票
1 回答
919 浏览

ios - 即使数据模型包含实体, mogenerator 也不会生成任何实体。报告“在模型中找不到实体。不会生成任何文件。”

我正在尝试让 mogenerator(最新 1.26)从核心数据模型(xcdatamodel)生成一些样板类,它报告:

即使 xcdatamodel 的内容明确存在

我究竟做错了什么?

我正在使用 Xcode 4.4.1 和 mogenerator 1.26

0 投票
1 回答
1780 浏览

cocoa - 带有 Core Data/Mogenerator 的 OCMock 抛出异常 NSInvalidArgumentException [NSProxy doesNotRecognizeSelector]

我在单元测试中使用 OCMock 来模拟 NSManagedObjects。我使用 Mogenerator 为我的核心数据对象生成机器和人类可读的文件。我试图模拟一个 NSManagedObject 以返回一个布尔值和一个字符串。两者都是我的核心数据实体的属性。当我模拟 时BOOL,该值从对象正确返回,我的类使用它,并且测试成功通过。当我尝试NSString在同一个对象上存根属性时,它会抛出一个NSInvalidArgumentException [NSProxy doesNotRecognizeSelector].

这是调用代码:

这是一个例外:

我知道有一些建议在 NSManagedObject 前面有一个用于测试目的的接口,但这似乎在 Mogenerator 机器/人类文件之上增加了复杂性。

在不完全重新配置此代码的情况下,是否有任何其他建议?该代码已经投入生产,我们正在尝试在开发新功能时添加单元测试。

0 投票
2 回答
661 浏览

core-data - CoreData:Mogenerator 与类别

我最近从外部开发人员那里继承了一个 CoreData 项目。在我希望找到所有自动生成的 NSManagedObject 子类的地方,我却拥有(一些谷歌搜索显示的)由 Mogenerator 生成的类,这是一个我没有经验的工具。

我了解使用此工具的目的是使您可以将自定义代码添加到与 CoreData 实体对应的类中,而不必担心在模型更改和重新生成类时它会丢失...但是我可以无论如何,通过使用类别。

我目前没有看到使用 Mogenerator 超过类别的真正优势。

使用 Mogenerator 与类别的优点/缺点是什么?Mogenerator 是否有其他用途?