问题标签 [github-mantle]

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 投票
0 回答
465 浏览

ios - 使用 Mantle 从 JSON 数组创建自定义 NSString

我正在使用Mantle解析一些业务 JSON。目前,我们通过以下业务类别的 JSON 对象数组:

如果 's' 然后将字符串附加到一个字符串中,则此循环遍历类别数组会删除最后一个字母。

这是目前完成的cellForRowAt..,我觉得这不是做这类工作的正确地方。

我想做的是将这些数据解析为最初使用 Mantle 创建的业务模型的字符串,而不是为每个单元完成此操作。

问题
如何根据我们上面的当前工作创建自定义 NSValueTransformer 来将 JSON 数组转换为模型上的字符串?

0 投票
0 回答
1380 浏览

ios - 使用嵌套字典进行地幔变换

我认为这个问题适用于我的情况,但是我缺乏 Mantle 和 iOS 的一般经验已经结束了我的思路。基本上,我有一大块带有嵌套字典和数组的 JSON,我想将它们转换为 Mantle 对象。

我希望能够实现与上面链接的解决方案类似的解决方案,即向下迭代“Features”键的字典,并对每个键/值对应用转换。因此,在这种情况下,对于“App”键和它的字典值(以及后来的“modernCapabilities”键和它的数组等)我知道对于后面的步骤,我需要单独的模型类,并且这些存在,但我在第一步中遇到了麻烦,即“App”键上的转换及其值。

这是我现在拥有的:

正如您从代码中看到的那样,我试图保留密钥,并将其附加到一个新字典,其值为另一个转换,在这种情况下为 FeatureStatus (@{ "App" : })

问题是没有 [FeatureStatus changedValue:],尽管我确实有一个 JSONKeyPathsForPropetyKey,因为我想稍后映射“status”、“unavailableReasons”和“modernCapabilities”键。

我的下一步是什么?我怎样才能注册一个做我想做的事情的 ValueTransform?

0 投票
2 回答
946 浏览

ios - 如何让 YapDatabase 和 Mantle 与序列化配合得很好

假设我有这样的模型:

如您所见,我想anotherProp在 NSCoding 序列化期间忽略,并将“UUID”重新映射到“id”。使用 YapDatabase,我做了一个

anotherProp但尽管有我的自定义方法,它仍会尝试序列化JSONKeyPathsByPropertyKey,导致此错误:

我是否需要编写自定义序列化程序才能使用 YapDatabase JSONKeyPathsByPropertyKey

0 投票
2 回答
6082 浏览

ios - 映射父对象内的对象数组 - Mantle iOS

我有一些看起来像这样的 json 数据:

我想使用 Mantle 将此 json 映射到包含两个对象的数组中。

这将如下所示:

但是,这需要我在 json 中找到“items”键,然后解析该键中的内容。

相反,我希望 Mantle 为我映射整个对象。所以,我想出了这个解决方案:

什么时候都设置完成,这将给我留下如下内容

这一切都很好,但我相信创建一个“MyObjects”类只是为了作为 MyObject 数组的占位符是矫枉过正的。有更好的解决方案吗?理想情况下,我正在寻找一个为我处理根“项目”键的地幔设置(或者比创建两个类更容易获取对象数组的设置),这样当它解析时,它就出来了2 个对象的数组。

谢谢!

0 投票
1 回答
1700 浏览

objective-c - 在 iOS 上测试 Mantle 模型时出错

给定以下简单的模型类(基于 Mantle):

我创建以下测试用例:

我得到以下运行时错误:

*** Assertion failure in -[MTLJSONAdapter initWithJSONDictionary:modelClass:error:] Invalid parameter not satisfying: [modelClass isSubclassOfClass:MTLModel.class]

而且,如您所见,modelClass(aka JAIInterestingPhonesCategory) 是MTLModel.

我已将 Mantle 作为 Pod 添加到项目中。

知道这里发生了什么吗?谢谢!!!

0 投票
2 回答
2843 浏览

ios - 如何在 Swift 中使用 Github Mantle 的 MTLValueTransformer?

前言:我主要是一个 obj-c && swift n00b。在过去的一年里,我通过使用 RubyMotion 对 iOS 和 Cocoa 框架有些熟悉。因此,如果有一些邪恶的愚蠢或明显的东西我错过了,那就是为什么......

我在一个新的 iOS 项目(使用 CoreData)中使用 Mantle 的 JSONTransformer 时遇到了问题。我一直在尝试在 Swift 中实现以下 [obj-c 代码]:

dateFormatter定义了以下函数:

使用下面的实现时,我一直收到类似于以下内容的错误:

'AnyObject!' is not a subtype of 'NSString'

或者

Cannot convert the expression's type 'MTLValueTransformer!' to type 'NSString?'

我尝试了以下方法:

还尝试使用块的可选类型参数......

我可以看到,当我在 xcode 中使用自动完成功能时,它正在寻找匹配的内容:

MTLValueTransformer.reversibleTransformerWithForwardBlock(forwardBlock: MTLValueTransformerBlock?, reverseBlock: MTLValueTransformerBlock?)

最后,我还尝试在所有示例(失败)中指定第一个参数的名称,例如

MTLValueTranso.reversibleTransformerWithForwardBlock(forwardBlock: _forwardBlock, reverseBlock: _reverseBlock)

非常感谢任何帮助或指导 - 谢谢!

0 投票
1 回答
123 浏览

objective-c - 使用 Mantle 和 Sickbeard API

我正在尝试使用 Mantle 将 Sickbeard API 的响应映射到我的对象,但我不知道如何,因为响应是基于键值的,使用 TVDB id 作为键,如下所示:

由于该data对象不只是包含这样的对象数组,[{"key": value},{"key": value}]而是由某个唯一 ID 键控的对象,所以我不确定应该如何将它映射到我的SBShow类中,定义如下:

任何帮助将不胜感激。

0 投票
3 回答
3471 浏览

ios - Mantle 自动将 0 和 1 转换为 BOOL?

Mantle 是否已经将 JSON 中的 int 值 0 和 1 转换为 Objective-C BOOL 值?

我有一个模型:

假设 JSON 是:

我想知道 Mantle 是否会自动转换is_valid为 Objective-C BOOL 值,我必须明确提及以下内容:

0 投票
1 回答
1807 浏览

objective-c - JSON 缺失字典(地幔)

我正在尝试将此 JSON 转换为模型:

这是我的课:

认为如果我将变量命名为完全相同,则不需要实现 JSONKeyPath,但我做到了。

这是我的转换方法:

其中 model 是我的类名,responseObject 只是我用 AFNetworking 填充的 id 对象。

我总是收到这个错误:

0 投票
1 回答
517 浏览

ios - 如何使用 Mantle 向父级添加关系?

我有这样的父/子类:

a 到 f 的所有字段都在 JSON 中,具有相同的名称(因此我的 JSONKeyPathsByPropertyKey 方法返回 nil),并且正确设置了正确的 JSONTransformer,以便 parent 中的 childs 数组包含 Child 类而不是 NSDictionary。

一切都在向前推进

但为了方便起见,我希望在我的 Child 模型中引用拥有它的父级的属性。所以在代码中我可以做到这一点:

我如何用 Mantle 做到这一点?

我希望,当父级解析孩子的 JSON 并创建 Child 类时,为其自身添加一个 ref。(使用 init 方法??)

谢谢。