第9月第30天 MVP

1.

import UIKit

struct Person { // Model
    let firstName: String
    let lastName: String
}

protocol GreetingView: class {
    func setGreeting(greeting: String)
}

protocol GreetingViewPresenter {
    init(view: GreetingView, person: Person)
    func showGreeting()
}

class GreetingPresenter : GreetingViewPresenter {
    unowned let view: GreetingView
    let person: Person
    required init(view: GreetingView, person: Person) {
        self.view = view
        self.person = person
    }
    func showGreeting() {
        let greeting = "Hello" + " " + self.person.firstName + " " + self.person.lastName
        self.view.setGreeting(greeting)
    }
}

class GreetingViewController : UIViewController, GreetingView {
    var presenter: GreetingViewPresenter!
    let showGreetingButton = UIButton()
    let greetingLabel = UILabel()

    override func viewDidLoad() {
        super.viewDidLoad()
        self.showGreetingButton.addTarget(self, action: "didTapButton:", forControlEvents: .TouchUpInside)
    }

    func didTapButton(button: UIButton) {
        self.presenter.showGreeting()
    }

    func setGreeting(greeting: String) {
        self.greetingLabel.text = greeting
    }

    // layout code goes here
}
// Assembling of MVP
let model = Person(firstName: "David", lastName: "Blaine")
let view = GreetingViewController()
let presenter = GreetingPresenter(view: view, person: model)
view.presenter = presenter

view调用self.presenter,presernter调用self.view

https://blog.coding.net/blog/ios-architecture-patterns

时间: 2024-10-29 19:08:36

第9月第30天 MVP的相关文章

[每日App一]QQ主题要逆天!轻轻松松月入30万!

听从吾师秦刚(微信或QQ:1111884)酋长的建议,谋哥(微信viyi88)我開始新的征程,每日更新一篇干货文章(要坚持啊!否则被酋长歧视了). 好了,废话不多说,今天我给大家揭秘一个你从来想也木有想到的暴力吸金App-QQ主题!个人搞的app哦.月入几十万哦! QQ主题这样的非常难上市场的APP,它是怎样捞金的?谋哥为你解析! OK!先下载安装"QQ主题".晕死. 你不知道去哪里下载?好吧! 下载链接:http://qq.gediao8.cn/ 本大神直接用命令安装咯,各位小白兄弟

第12月第30天 love2d

1. Linux On Linux, you can use one of these command lines: love /home/path/to/gamedir/ love /home/path/to/packagedgame.love If you installed LÖVE system-wide, you can double click on .love files in your file manager as well. Mac OS X On Mac OS X, a f

30岁IT男连续工作一个月 突然失聪

连续开发软件一个月,30 岁男子突然听不见声音了.近日,浙江省中山医院针灸科主任高宏主任中医师接诊了这名患者.高主任说,现在很多年轻人工作压力大,得突发性耳聋的越来越多,这种病听着不是威胁生命的大病,但要治愈其实还很麻烦的. 开发软件一个月不休息,30 岁 IT 男耳朵听不见了 这名男子是杭州一家 IT 公司的软件开发人员,未婚.今年初,公司接了一单软件开发任务,时间很紧,春节前要完成.公司成立了一个 5 人项目组,给项目组包了个酒店,成员吃住都在一起,封闭开发.这名男子就是小组核心成员.这些日

30岁程序员连续工作一个月突然失聪

连续开发软件一个月,30岁男子突然听不见声音了.近日,浙江省中山医院针灸科主任高宏主任中医师接诊了这名患者.高主任说,现在很多年轻人工作压力大,得突发性耳聋的越来越多,这种病听着不是威胁生命的大病,但要治愈其实还很麻烦的. 开发软件一个月不休息,30岁IT男耳朵听不见了 这名男子是杭州一家IT公司的软件开发人员,未婚.今年初,公司接了一单软件开发任务,时间很紧,春节前要完成.公司成立了一个5人项目组,给项目组包了个酒店,成员吃住都在一起,封闭开发. 这名男子就是小组核心成员.这些日子,他每天都在

参加MVP OpenDay 和2015 MVP Community Camp社区大课堂

微软MVP Openday 1月30日在北京召开,到时全国上百位 MVP 专家将齐聚北京.当然还有亚太的其他国家地区的MVP 也会来北京,1月31日微软 MVP 项目组主办的年度微软技术社区分享大会--2015 微软社区大课堂 Community Camp !. 超过 30 位微软最有价值专家 MVP 将为您呈现超过 20 场微软技术课程,一天的时间,不同技术主题,同一时段不同的内容同时进行,选你所爱的课程学习! 好久没有到首都去了,借这次机会去参加MVP OpenDay 和2015 MVP C

[深圳/广州]微软SQL技术沙龙分享会(MVP)

[深圳/广州] 新一期俱乐部活动报名开始,这次是广深地区SQL Server 技术沙龙分享会(MVP),SQL Server作为一个数据平台,不管是SQL Server 2017 on Linux 还是把一门开源R语言融入其最赚钱的旗舰商业数据库,微软已经决定,下一代的由云驱动的计算将以数据驱动的智能为特征,不管是平台.应用还是设备.微软对开源的拥抱现在已经是一个事实,而不是一个问题.微软现在已经认识到,开源平台是真正的行业标准,并且,喜欢产品的消费者会支持这些平台.微软已经有了HD Insig

阿里云MVP:开发者的超能力,用技术创造更好世界

2019年3月,第8期阿里云MVP(最有价值专家)完成终审,截至目前,全球已有27个国家和地区.近500位云计算专家和优秀开发者成为阿里云MVP.阿里云MVP是阿里云授予中国乃至全球行业数字化转型技术实践领军者的称号,他们懂技术.爱分享,愿意赋能更多开发者,让技术普惠更多企业.在他们的身上,你能看到这个时×××发者激动人心的创新创造,更能看到站在各行各业技术前沿的实践者们,努力建设一个更美好的数字中国. 数字转型:技术让生活更美好 2018年12月28日,25岁的黄胜蓝接到了阿里云MVP认证通过

2014年7月7号

一些练习题 //第一题: //让学生输入其姓名和语文,数学,英语,编程求总分和平均分 //并在屏幕上显示:XX你的总分分数为XX分,平均为XX分. try { Console.WriteLine("请输入您的姓名"); string name = Console.ReadLine(); Console.WriteLine("请输入你的语文成绩"); int chinese = Convert.ToInt32(Console.ReadLine()); Console.

IOS 距离现在的几分,几个小时,几分钟,几天,几周几月,几年

    NSString *distanceTime = [self returnFromTheTimeOfToday:@"2016-09-29 01:45:10"]; #pragma mark 默认一分钟有60秒,一小时就60分钟 一天有24小时,一周有7天,一个月有30天,一年有12个月 不考虑其他的如平年2月28天,闰月29天这些情况 - (NSString *)returnFromTheTimeOfToday:(NSString *)timeStr {     //timeSt