- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用不断发展的 JSON。我最近开始使用 Mantle 编写代码来使用 JSON。对于我想做的事情来说,这似乎是一个很好的选择。但是,似乎如果正在使用的 JSON 具有模型中不存在的属性,则 JSON 转换将失败。我正在使用 [MTLJSONAdapter modelOfClass:fromJSONDictionary:error:];
调用来映射 JSON。
提前致谢
最佳答案
仔细检查代码后,Mantle 确实要求所有 json 属性都映射到模型中的某些内容。否则,将会发生该属性的异常。
在 MTLModel 的 MTLValidateAndSetValue
内部,它在设置属性之前不检查该属性是否存在。
@try {
if (![obj validateValue:&validatedValue forKey:key error:error]) return NO;
if (forceUpdate || value != validatedValue) {
[obj setValue:validatedValue forKey:key];
}
return YES;
} @catch (NSException *ex) {
NSLog(@"*** Caught exception setting key \"%@\" : %@", key, ex);
// Fail fast in Debug builds.
#if DEBUG
@throw ex;
#else
if (error != NULL) {
*error = [NSError mtl_modelErrorWithException:ex];
}
return NO;
#endif
}
如果您使用的 JSON 不能保证与您的模型匹配,这就会出现问题。
我最终为我的工作做了一个自定义的 JSON 表示,让构造函数根据传入的 JSON 而不是模型构建对象。它将首先遍历 json 属性并尝试使用隐式映射将它们直接映射到模型属性。如果有任何属性需要特殊处理,则由子类覆盖 init 调用并手动应用转换。
关于ios - 地幔是否需要完全指定模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29335308/
我使用 coco pod 安装了“Mantle”。但是当我尝试在我的模型中使用它时,它出现了此错误。 /Users/bgbb/Developer/experimental/MantleTest/Man
假设我们有一个 MTLModel 的子类,并且该类立即获得了 copyWithZone: 的实现。但我想知道框架是否使用深复制。例如,如果该类具有数组或对象属性,则他们复制了引用或新分配的对象。非常感
我正在使用 Mantle 框架,我似乎在将某些值序列化为 MTLModel 时遇到了一些问题。这是我从服务器收到的 JSON: { "id":50, "name":"UserName"
我有一个 JSON 字典,如下所示: { "111": {"dates" : [], "members" : []}, "112": {"dates" : [],
我有一个简单的场景,我想用 Mantle 从 Json 解析一个用户模型并将其保存到 Realm 数据库: 为了使用 Mantle 库,模型接口(interface)必须像这样扩展 MTLModel
我是一名优秀的程序员,十分优秀!