看了Mantle这个库,依然需要在-JSONKeyPathsByPropertyKey方法中写对应的Keys。使用runtime在性能上也会有影响。直接生成代码不是来的更加方便吗?
看了Mantle这个库,依然需要在-JSONKeyPathsByPropertyKey方法中写对应的Keys。使用runtime在性能上也会有影响。直接生成代码不是来的更加方便吗?
直接生成代码会有大量的无用代码,如果 JSON 有1000个 key ,你需要至少有 1000 个属性,还要有 1000 行 xxx.xxx = json["xxx"]; 的代码。
首先,用JSONModel就可以不用写上对应的 keys 了~ 我没用过你说的这个库,如果每个 key 都需要写的话,我觉得体现不出什么优势~
其次,用工具生成代码,我觉得就可能出现潜在的不一致。model 一旦改变,比如添加了哪个字段/字段改了,忘了改生成的代码或者忘了重新跑一遍工具,就会取不到值,属性一直是 nil 还不知道怎么回事。用上 runtime 的转换,至少可以避免人为的疏忽~
大部分情况下,解析的数据都不会很大,手机的性能完全可以满足这点开销。基于这点,会有以下好处:
更多的好处,还需要使用者再去体会,不同的方式,都去试试,说不定还可以总结出新的方式
4 回答4.2k 阅读
2 回答1.8k 阅读✓ 已解决
1 回答1.3k 阅读✓ 已解决
2 回答1.4k 阅读
1 回答1.3k 阅读
1 回答1.2k 阅读
1 回答1.1k 阅读
Mantle就是你说的用于自动生成Model代码的工具,只是这个库的灵活性很大,对于不同的key怎么transform你可以完全自己定制。
Mantle在你自己定制方式的基础上自己序列化或者反序列化。
我目前代码正在用这个库,感觉非常不错。
推荐这两篇帖子给你
Mantle使用
Mantle是什么