问题标签 [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 投票
1 回答
643 浏览

ios - Mantle iOS: How to create class model with variable key

I have a JSON dictionary that looks like this:

As you can see, the key for the nested dictionary is variable (111, 112, 113).

So far, every Mantle model I have made has fixed keys so I don't know how to handle this particular situation.

Any ideas?

0 投票
1 回答
245 浏览

ios - Mantle:解析 JSON 时未捕获的异常“NSInvalidArgumentException”

我正在使用该Mantle框架,并且在将某些值序列化为MTLModel. 这是JSON我从服务器收到的:

MTLModel按以下方式设置了我的 s:

用户

轮廓

图片

版本

我正在执行以下OvercoatPOST 调用来获取 JSON。当我NSLog响应时,我收到了 JSON 罚款:

当我尝试Picture像这样抓取对象时会出现问题:

我得到一个例外:

我怎样才能解决这个问题?我究竟做错了什么?

0 投票
1 回答
223 浏览

ios - 如何为 iOS 7.0 构建 Mantle v2?

我的项目目前针对 iOS 7.1 及更高版本。我已经按照Mantle 的 GitHub 站点上的描述与 Carthage 一起构建了Mantle 。但是在构建我的项目时出现以下错误:

ld:嵌入式 dylibs/frameworks 仅在 iOS 8.0 及更高版本 (@rpath/Mantle.framework/Mantle) 上支持架构 arm64 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

有人知道我如何Mantle.framework为 iOS 7.1 构建(最好使用 Carthage)吗?

0 投票
0 回答
453 浏览

ios - 结合使用 Mantle、Overcoat 和 Magical Record 的简化核心数据堆栈

我根据这篇博客文章(Swift 中)设计了一个核心数据堆栈,其中我有两个NSManagedObjectContext实例,一个主队列上下文(NSMainQueueConcurrencyType)和一个私有队列上下文(NSPrivateQueueConcurrencyType),其中主上下文的工作是处理与用户交互相关的所有事情(编辑,向用户呈现数据)和私有上下文的唯一工作是写入磁盘。

为了使管理堆栈尽可能简单,我集成了Magical RecordOvercoatMantle。我将所有这些分为两个类,一个 Core Data 单例堆栈(基于 Magical Record 构建)和一个网络管理器单例(构建在 Overcoat 之上,而后者又构建在 Mantle 之上)。

Core Data 堆栈如下所示:

我的网络管理员看起来像:

我不能完全理解的是 1)这两个类如何协同工作,以及 2)关于核心数据堆栈、要保存的上下文、在哪个上下文上做什么等。

对于NetworkManager.swift(需要将NSManagedObjectContext模型持久化到):

我用哪个上下文来初始化管理器?我的假设是,如果您发出网络请求并且 JSON 被转换为中间Mantle模型并从那里转换为NSManagedObejct实例,那么这些实例应该直接保存到私有队列上下文,在这种情况下完全绕过主队列上下文。

谈论时CoreData.swift

1) Magical Record 具有saveWithBlock创建本地上下文并将其传播到根上下文的方法(在这种情况下,根上下文是私有队列上下文),但不清楚在块内应该做什么工作。

在他们的文档中,他们给出了这个例子:

他们Person在保存块之外创建一个对象,然后在本地上下文中重新制作实体,然后编辑它的属性。但是在我的情况下,所有Person对象都是 的实例MTLModel,而不是NSManagedObjectMTLManagedObjectAdapter当我创建一些模型对象时,因为它不是核心数据对象,所以在我用来将模型转换为NSManagedObject实例之前,它不会被插入任何类型的上下文中。

最好的方法似乎是创建MTLModel实例,进行任何需要的编辑,然后 1)在内部saveWithBlock将新创建的托管对象直接插入本地上下文并让它向上传播,或者 2)插入对象放入私有队列上下文并保存。

2)我真的需要使用主队列上下文来保存和编辑吗?正如我之前所说,Mantle 将模型类作为子类,MTLModel然后将它们映射到NSManagedObject实例中,因此我可以直接保存到 Private Queue Context(其唯一的工作就是写入磁盘)是有道理的

3)如果我不需要使用主队列上下文进行保存/编辑,它不会成为我用于获取的上下文NSManagedObjects(鉴于私有队列的工作是写入磁盘和保存/编辑功能Mantle 的中间模型结构似乎使 Main Queue Context 过时了)?

0 投票
1 回答
441 浏览

swift - 地幔忽略JSON中的键

创建地幔模型时,我一直试图忽略字典中的键。假设 json 包含:

最初我有一个模型

问题是我收到一条错误消息,说“此类不符合键 prop2 的键值编码”。

我还注意到,JSONKeyPathsByPropertyKey使用字典初始化模型时不会调用该方法try! super.init(dictionary: dictionaryValue, error: ()),仅在从模型生成 JSON 时才会调用该方法,强制属性具有与 JSON 相同的键。我希望能够忽略某些键的原因是因为后端服务可能会发生变化,而且我不一定必须滚动更新,因为调用中添加了一些额外的信息,或者因为它们完全不相关。

0 投票
1 回答
525 浏览

ios - 根据键的值从 NSDictionary 的 NSMutableArray 中删除重复项

我有一个NSMutableArray,比如说 10 NSMutableArrays。每一个都NSMutableArrays包含不同数量的NSDictionary对象,我为其创建了一个模型类。我从 API 响应中获取这些数据。第一次进行 API 调用时,响应将是整个数据。从那时起,当进行 API 调用时,它只返回被修改的数据。

当我从 API 响应中获得一些新数据时,它包含已经在字典数组中但稍作修改的数据。

模型类的结构如下:

子类别.h

返回的 JSON 对象将如下所示:

新数据的 'id' 字段是相同的。但它的“名称”和“状态”字段是不同的。我想用新数据替换对象中NSMutableArrayNSDictionary数据,以便它保留此数组中对象的顺序。我怎样才能做到这一点?

0 投票
1 回答
392 浏览

ios - 在 iOS 上使用 Mantle 将 Json 数组转换为 Obj 属性

我目前正在尝试简化我的 Obj-C 模型,但似乎 json 数据使它比我想象的要复杂一些。我无法将数组数据转换为一些布尔值。

据我所知,不可能使用框架JSONKeyPathsByPropertyKey来定义密钥是这样的:@"gsRightIPServerStart", @"rights.name['RIGHT_IP_SERVERSTART'].granted" 或者至少可以访问序列化字典在使用的类中,例如。我的 FNPServer 类。

这是我必须使用的 JSON 响应的一部分:

这是一个简单的数组,可以很容易地表示为布尔值。在这种情况下,一些 NSNumbers (CoreData):

在生成此对象以自行处理转换时或之后,我找不到获取源字典的解决方案。

我不想创建几个不同的类并检查属性以生成一个充满完整对象的数组,以解决一个简单的是或否问题。它应该在没有“外部帮助”的情况下工作,否则我必须检查一堆请求是否存在数据。

谢谢

0 投票
1 回答
211 浏览

objective-c - 使用具有根键的 Mantle 解析 JSON

我尝试解析从 REST-Webservice 获得的 JSON。

座位.json:

我的 MTLModel (这不起作用。因为 json 字段前面有一个座位。)

这将起作用,因为它通过座位字典访问字段。

但是嵌套对象将不起作用。示例 JSON:

映射:

这不起作用,因为座位映射仅在字典以座位开头时才有效。

如何将 Mantle SDK 与这样的 JSON 对象一起使用?

0 投票
1 回答
150 浏览

objective-c - 如何使用 Mantle 自定义 NSdictionary?

我有以下 json 字符串:

因此,当使用 mantle 解析带有以下文件的 json 字符串时

测试模型.h

测试模型.m

我想如何将西装从字符串转换为具有多个 url 的 NSArray,所以我做了以下操作:

测试模型.h

测试模型.m

但它不起作用。结果为零。当我覆盖错误的功能时?

0 投票
1 回答
102 浏览

objective-c - 使用两种 JSON 格式反序列化 Mantle 对象

有没有办法使用两个不同的 JSON 对象来构造一个地幔对象?例如,假设有一个 Address 类和以下两种 JSON 格式:

MTLJSONAdapter 中是否有某个地方可以识别两种格式并根据它们分配或序列化属性?

希望做类似上面的事情,或者任何允许有条件地映射到对象的事情。