文档章节

swift3.0 面向协议开发 MVP 来看看吧

赵大财
 赵大财
发布于 2016/12/02 16:57
字数 193
阅读 234
收藏 0

贡献者:赵大财
博客:https://my.oschina.net/zhaodacai GitHub:https://github.com/dacaizhao
邮箱: dacai_zhao@163.com  QQ:327532817
=============================
下载地址:https://github.com/dacaizhao/swiftMVP  喜欢就给我star吧
先看:ViewController

class ViewController: UIViewController {
    
    fileprivate lazy var presenter : ViewPresenster = {
        return ViewPresenster(presenter: self)
    }()
    
    
    override func viewDidLoad() {
        super.viewDidLoad()
     }
    
    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        presenter.getData()
    }
}

// MARK:- 获取数据//
extension ViewController:ViewPresensterProtocol{
    func showPost(_ resulet: [DCModel]) {
        print(resulet)
    }
}

在看 Model

class DCModel: NSObject {
    
    // 用户ID
    var user_id : String = ""
    
    // 用户名字
    var user_name : String = ""
    
    init(dict : [String : Any]) {
        super.init()
        setValuesForKeys(dict)
    }
    
    override func setValue(_ value: Any?, forUndefinedKey key: String) {}
}


最后 Presenter

protocol ViewPresensterProtocol {
    func showPost(_ resulet: [DCModel])
}

class ViewPresenster: NSObject {
    var presenter: ViewPresensterProtocol!
    lazy var model:[DCModel] = [DCModel]()
    init(presenter:ViewPresensterProtocol) {
        self.presenter = presenter;
    }
    
    func getData(){
        let dict = [
            ["user_id":"1","user_name":"zhaodacai1"],
            ["user_id":"2","user_name":"zhaodacai2"],
            ["user_id":"3","user_name":"zhaodacai3"],
            ["user_id":"4","user_name":"zhaodacai4"],
            ["user_id":"5","user_name":"zhaodacai5"],
            ["user_id":"6","user_name":"zhaodacai6"],
            ["user_id":"7","user_name":"zhaodacai7"]
        ]
        
        for item in dict {
            model.append(DCModel(dict: item))
        }
        
        self.presenter.showPost(model)
    }
    
    
}

 

© 著作权归作者所有

赵大财
粉丝 22
博文 162
码字总数 38743
作品 0
长沙
私信 提问
iOS开发系列--Swift 3.0

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jianxin160/article/details/51702073 概述 从写第一篇Swift文章的时候到现在Swift已经从1.2发展到了今天的3...

KenshinCui
2016/06/17
0
0
从此刻开始拥抱 Swift 3.0

SwiftGG 翻译组 原文链接 作者: Vic Chan 若有问题或者错误请联系我:victorchanchina@gmail.com API is shortened ++ / -- Swift 2.2 的时候对 或者 已经给出 提示将在Swift3.0中将废除。...

Vic_Chan
2016/09/27
0
0
iOS开发进阶,掌握架构才能掌握未来

架构模式 对于 iOS 开发者,现在不仅仅关注功能的实现。踏入到 2~3年的门槛应该更多的注重代码、项目的结构层次,因此掌握目前主流的几种架构模式是一项必备技能。你是不是还在为项目中使用 ...

_小迷糊
2018/11/30
0
0
iOS 架构模式

架构模式 原文链接 : 链接 一个整体的分层? 逻辑清晰? 还是清晰的分工? 对于架构模式来说并没有一个非常明确的定义, 比较抽象, 在于设计在于架构, 不管是小到类与类之间的交互, 还是不同的小...

吃粑粑的毕教授
2017/12/14
0
0
Swift3.0新变化

1.关于inout 在Swift2.2中 func change( inout a:Int, inout _ b: Int){ let t = a a = b b = t } 在Swift3.0中 func change( a:inout Int, _ b: inout Int){ let t = a a = b b = t } 2.协议......

jingn
2016/06/22
41
0

没有更多内容

加载失败,请刷新页面

加载更多

Activity启动模式二

上篇文章Activity启动模式一主要介绍了Activity的四种启动模式,这些启动模式都是在AndroidManifest中进行配置的。除此之外,Android系统还通过Intent类提供了一些标志位,同样可以指定Activ...

ltlovezh
4分钟前
2
0
三原色还原

1、Color Filter Array — CFA 随着数码相机、手机的普及,CCD/CMOS 图像传感器近年来得到广泛的关注和应用。 图像传感器一般都采用一定的模式来采集图像数据,常用的有 BGR 模式和 CFA 模式...

天王盖地虎626
15分钟前
2
0
kubernetes pod exec接口调用

正文 一般生产环境上由于网络安全策略,大多数端口是不能为集群外部访问的。多个集群之间一般都是通过k8s的ApiServer组件提供的接口通信,如https://192.168.1.101:6443。所以在做云平台时,...

码农实战
53分钟前
6
0
3_数组

3_数组

行者终成事
今天
8
0
经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部