V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
zioc
V2EX  ›  iDev

iOS 用 Dictionary 接收数据而不用实体类的弊端

  •  
  •   zioc · 2015 年 3 月 27 日 · 4700 次点击
    这是一个创建于 3945 天前的主题,其中的信息可能已经有所发展或是发生改变。

    以前在C#开发中,全部都用实体类,但不太灵活。

    在iOS开发中,用Dictionary接收数据,感觉很灵活,但感觉是不是不规范?

    那么在iOS开发中 什么时候用Dictionary?什么时候用实体类?

    13 条回复    2015-04-06 23:56:18 +08:00
    chisj
        1
    chisj  
       2015 年 3 月 27 日
    建议都用实体类。更好维护,也更看得懂。
    yellowV2ex
        2
    yellowV2ex  
       2015 年 3 月 27 日
    写个总类,可以把这些个dictionary转成实体顺便检查格式丢error出来
    zioc
        3
    zioc  
    OP
       2015 年 3 月 27 日
    @yellowV2ex 额,不明白具体操作办法
    newtonisaac
        4
    newtonisaac  
       2015 年 3 月 27 日
    搜索下 ios mantle
    vincentxue
        5
    vincentxue  
       2015 年 3 月 27 日
    如果是用 JSON 交互,那么上服务器的一个对象,会包装为字典传给你,然后你就要把这个字典映射为自己的实体对象。

    字典只是作为中介传输使用,你模型类公开的属性或变量不应该有字典类型,因为你总是应该把它映射为实体才对。

    建议看看 Instagram 的 API,写得相当优秀。

    贴一个我前段时间写的一个小项目的一个模型类。仅供参考。

    https://gist.github.com/VincentSit/fd64cd721c0e366b3f04
    https://gist.github.com/VincentSit/66e7261779a8d24d2795

    这个类里的代码涉及到的第三方库:
    AFNetworking - 网络请求
    MagicalRecord - Core Data 封装
    Motis - 模型映射
    alsotang
        6
    alsotang  
       2015 年 3 月 27 日
    @livid 楼上的文本框溢出了
    knightlhs
        7
    knightlhs  
       2015 年 3 月 27 日
    如果是 JSON 交互 可以考虑 JsonModel 自动映射
    vincentxue
        8
    vincentxue  
       2015 年 3 月 27 日
    @alsotang 这个情况普遍存在。
    afon
        9
    afon  
       2015 年 3 月 27 日
    学习学习
    vixvix
        10
    vixvix  
       2015 年 3 月 27 日
    还是用实体比较容易维护。实体里面处理从dictionary到object的serialization,和object到json的deserialization.
    simman
        11
    simman  
       2015 年 3 月 28 日
    我接过一个别人写的项目,里面全是用字典,没有注释,没有文档,简直要疯掉啊。
    tigerZhang
        12
    tigerZhang  
       2015 年 3 月 31 日
    https://github.com/CoderMJLee/MJExtension
    妈妈在也不用担心模型和字典之间的转换了。
    sherblue
        13
    sherblue  
       2015 年 4 月 6 日
    可以用JSONModel
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2919 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 15:04 · PVG 23:04 · LAX 07:04 · JFK 10:04
    ♥ Do have faith in what you're doing.