Swift环境下使用MJExtension

最近开始学习swift3.0的新特性
由于是从OC转过来的
所以对MJExtension和ESJsonFormat很有感情
这里分享一下如何在swift环境下使用MJExtension

所用技术

  • swift
  • MJExtension
  • ESJsonFormat
  • Alamofire
  • SwiftyJSON

安装

使用pod安装 这里有几个坑

  1. 注意Podfile中加入一行
use_frameworks!

完整的podfile例

platform :ios, ‘8.0’
use_frameworks!

target ‘SwiftDemo’ do
pod 'Alamofire', '~> 4.5.0'
pod 'SwiftyJSON', '~> 3.1.4'

pod 'MJExtension', '~> 3.0.13'
pod 'SVProgressHUD', '~> 2.0.3'
end
  1. 添加Briding-Header.h文件以便引用OC的类
    创建一个.h文件 如Objc-Briding-Header.h
    Apple建议使用-Briding-Header字段作为后缀 这里果断就听苹果爸爸的话了
    在里面import需要的OC的类
    坑:
  • 这里的#import 没有代码提示
    且无论是否是什么类型的类 都用
#import"xxxx.h"

而不用

#import<xxxx.h>

例如 完整的Briding-Header.h

#ifndef Objc_Briding_Header_h
#define Objc_Briding_Header_h

#import "SVProgressHUD.h"
#import "MJExtension.h"

//model
#import "DemoModelOne.h"

#endif /* Objc_Briding_Header_h */
  • import之后需要进行一些设置
  1. 在target——>build setting中搜索bridg 把Objective-C Bridging Header路径设置一下,一定要设置对,如果你的桥接文件不是和project工程文件在同一级项目目录中,要记得把你的文件所在的目录加进路径,一定要确保根据这个路径可以找到你的桥接文件。如图


    1.png
  2. 设置一个User Header Search Paths,否则在需要用三方库的地方是调不出来的。在target——>Build Setting里找到search Paths,双击User Header Search Paths后面的空白处,设置目录路径为${SRCROOT} 后边选择recursive。如图


    2.png

使用

模型的建立

这里很多同学直接就去建了swift模型,其实这里应该使用OC模型,如果是swift模型,MJExtension可能不能完美的完成转换.而且建立OC模型,可以使用ESJsonFormat来完成,非常方便.
关于ESJsonFormat的使用,请参考ESJsonFormat github

使用Alamofire获取json

Alamofire是OC中著名开源网络框架AFNetworking的swift版本
关于Alamofire的使用,请参考Alamofire github

使用SwiftyJSON

SwiftyJSON是swift中著名的json解析工具,使用这个插件,可以让json多层连续解析而不产生crash.
关于SwiftyJSON的使用,请参考SwiftyJSON github

具体使用代码例

关于MJExtension的基本用法(OC),请参考作者的介绍MJExtension github

    func getData(_ completion:@escaping ()->Void) -> Void {
        //显示hud
        SVProgressHUD.setStatus("加载中")
        let url = "http://xxxxxx"
        Alamofire.request(url).responseJSON { (response) in
            //隐藏hud
            SVProgressHUD.dismiss()
            response.result.ifSuccess({
                //使用SwiftyJSON解析json并取数组层数据
                let json = JSON(response.data as Any)
                let jsonData = json["goodsRecommendTypeFormBeans"][0]["goodsRecommendFormList"].rawValue
                for dic in (jsonData as! Array<Any>){
                    //字典转为OC字典不然MJExtension不会进行转换
                    let nsdic = dic as! [NSObject : AnyObject]
                    //用MJExtension转成OC模型
                    let model = DemoModelOne.mj_object(withKeyValues: nsdic)
                    //把模型写入数组
                    self.dataArray.append(model!)
                }
                print(self.dataArray)
                completion()
            })
        }
    }

由此,你获得了一个装满了model的dataArray 尽情折腾吧!

相关文章

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,165评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,720评论 1 298
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,849评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,245评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,596评论 3 288
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,747评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,977评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,708评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,448评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,657评论 2 249
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,141评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,493评论 3 258
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,153评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,108评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,890评论 0 198
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,799评论 2 277
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,685评论 2 272

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 11,624评论 4 59
  • 于顾一宸 顾一宸的写作历程 6月10号的时候,我去上海签售。 在上海言几又书城长泰店,我和来到现场的众多读者分享了...
    ouxyea阅读 167评论 0 0
  • 徽杭古道行 人类最伟大的事迹就是为了生活而用生命开辟出无数著名的商道,如丝绸之路、茶马古道...
    随笔设计阅读 1,247评论 7 14