如果说MVC是最好的设计模式, 可能很多人并不赞同, 但是如果说MVC是最主流, 应用面最广的设计模式, 我想这是毫无争议的. 不说废话, 直接演示在Swift中如何使用MVC新建工程(我并没有新建文件夹, 大家按照自己实际需求来).

  1, 新建文件, 不多废话.

  

  2, ViewController中代码

  

 class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource{

     var tableView : UITableView!
     var dataArray = [Model]()

     override func loadView() {

         super.loadView()
         //循环生成字典
         ; i < ; ++i{
             let item: Dictionary = ["name" : "wang", "age" : "\(i)"]
             let model = Model()
             model.setValuesForKeysWithDictionary(item)
             dataArray.append(model)
         }

         //初始化tableView
         tableView = UITableView(frame: CGRect(x: , y: , width: self.view.frame.width, height: self.view.frame.height), style: UITableViewStyle.Plain)
         tableView.delegate = self
         tableView.dataSource = self

         self.view.addSubview(tableView)

     }
     //tableView协议方法
     func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

         let indentifier = "tableView"
         var cell: MyTableViewCell!
         cell = tableView.dequeueReusableCellWithIdentifier(indentifier) as? MyTableViewCell
         if cell == nil{
             cell = MyTableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: indentifier)
         }
         cell.model = dataArray[indexPath.row]

         return cell
     }

     func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

         return dataArray.count

     }
     override func viewDidLoad() {
         super.viewDidLoad()
         // Do any additional setup after loading the view, typically from a nib.
         self.navigationController?.navigationBar.barTintColor = UIColor.redColor()

     }

     override func didReceiveMemoryWarning() {
         super.didReceiveMemoryWarning()
         // Dispose of any resources that can be recreated.
     }

  3, Model中代码

 import UIKit

 class Model: NSObject {

     var name: String!
     var age: Int = 

 }

  4, MyTableViewCell中代码

 import UIKit

 class MyTableViewCell: UITableViewCell {

     var model: Model{
         set{
             nameLabel.text = newValue.name
             ageLabel.text = String(stringInterpolationSegment: newValue.age)
         }
         get{
             return self.model
         }
     }
     var nameLabel: UILabel!
     var ageLabel: UILabel!

     override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
         super.init(style: style, reuseIdentifier: reuseIdentifier)
         createCell()
     }

     required init?(coder aDecoder: NSCoder) {
         fatalError("init(coder:) has not been implemented")
     }

     func createCell(){
         nameLabel = UILabel()
         ageLabel = UILabel()

         self.contentView.addSubview(nameLabel)
         self.contentView.addSubview(ageLabel)
     }

     override func layoutSubviews() {
         super.layoutSubviews()
         nameLabel.frame = CGRect(x: , y: , width: , height: )
         ageLabel.frame = CGRect(x: , y: , width: , height: )
     }

     override func awakeFromNib() {
         super.awakeFromNib()
         // Initialization code
     }

  希望能给大家一个思想, 在学习Swift的道路上, 如果之前有过一定的Java等函数语言的基础, Swift相比OC来说好学很多, 如果只是OC的基础的话, 会不太习惯类, 实例化, 静态方法属性等, 需要多多下功夫.

  Demo地址:https://github.com/JianweiWangs/-MVC-Swift-TableView.git

  希望大家都能学好Swift!

iOS开发--Swift 基于MVC设计模式的简单的tableViewDemo的更多相关文章

  1. 李洪强iOS开发Swift篇---12_NSThread线程相关简单说明

    李洪强iOS开发Swift篇---12_NSThread线程相关简单说明 一 说明 1)关于多线程部分的理论知识和OC实现,在之前的博文中已经写明,所以这里不再说明. 2)该文仅仅简单讲解NSThre ...

  2. iOS开发Swift篇—(一)简单介绍

    iOS开发Swift篇—简单介绍 一.简介 Swift是苹果于2014年WWDC(苹果开发者大会)发布的全新编程语言 Swift在天朝译为“雨燕”,是它的LOGO 是一只燕子,跟Objective-C ...

  3. iOS开发中的MVC设计模式

    我们今天谈谈cocoa程序设计中的 模型-视图-控制器(MVC)范型.我们将从两大方面来讨论MVC: 什么是MVC? M.V.C之间的交流方式是什么样子的? 理解了MVC的概念,对cocoa程序开发是 ...

  4. iOS开发--Swift 基于AFNetworking 3.0的网络请求封装

    Swift和OC基于AFNetworking的网络请求流程相同, 就是语法不同, 对于Swift语法不是很清楚的同学, 建议多看看API文档, 自己多多尝试. 写过OC的应该都明白每句话做什么的, 就 ...

  5. iOS开发Swift篇(02) NSThread线程相关简单说明

    iOS开发Swift篇(02) NSThread线程相关简单说明 一 说明 1)关于多线程部分的理论知识和OC实现,在之前的博文中已经写明,所以这里不再说明. 2)该文仅仅简单讲解NSThread在s ...

  6. iOS开发Swift篇—简单介绍

    iOS开发Swift篇—简单介绍 一.简介 Swift是苹果于2014年WWDC(苹果开发者大会)发布的全新编程语言 Swift在天朝译为“雨燕”,是它的LOGO 是一只燕子,跟Objective-C ...

  7. 李洪强iOS开发Swift篇—01_简单介绍

    李洪强iOS开发Swift篇—01_简单介绍 一.简介 Swift是苹果于2014年WWDC(苹果开发者大会)发布的全新编程语言 Swift在天朝译为“雨燕”,是它的LOGO 是一只燕子,跟Objec ...

  8. 基于MVC设计模式的Web应用框架:struts2的简单搭建(一)

    Struts2的初步介绍 Struts2是apache项目下的一个web 框架,普遍应用于阿里巴巴.京东等互联网.政府.企业门户网站.虽然之前存在了很大的安全漏洞,在2013年让苹果.中国移动.中国联 ...

  9. iOS 基于MVC设计模式的基类设计

    iOS 基于MVC设计模式的基类设计 https://www.jianshu.com/p/3b580ffdae00

随机推荐

  1. Winform如何实现ComboBox模糊查询

    最近朋友问了一个关于Winform实现ComboBox模糊查询的知识点,自己好久没有搞Winform了,就上手练了一下,废话不多说,进入正题. 前台设计: 前台就是一个简单的Form窗体+一个Comb ...

  2. iOS 阶段学习第11天笔记(OC基础知识)

    iOS学习(OC语言)知识点整理 一.OC基础知识 1)#import  用于导入头文件,预处理阶段加载引用,只加载一次. 2)OC 依赖于Foundation框架下的头文件Foundation.h, ...

  3. 【C#进阶系列】17 委托

    委托主要是为了实 现回调函数机制,可以理解为函数指针(唯一不同的在于多了委托链这个概念). 然而用的时候可以这么理解,但是委托的内部机制是比较复杂的. 一个委托的故事 delegate void ra ...

  4. 【转】EL表达式 (详解)

    EL表达式      1.EL简介 1)语法结构        ${expression} 2)[]与.运算符      EL 提供.和[]两种运算符来存取数据.      当要存取的属性名称中包含一 ...

  5. FreeBSD应该装gnome3做桌面

    目前freebsd pkg包管理体系的repo源多了一些,速度快了很多. 仓库中目前的版本为3.14,安装gnome3很简单. pkg install xorg gnome3 echo "e ...

  6. HTML标签小结

    HTML:超文本标记语言 超:超链接       超文本:超出文本(可加入图片,文字,音频视频播放器)  标记:标签 HTML文档 以<html...>开始 , 以</html> ...

  7. Android总结篇系列:Android Service

    Service通常总是称之为“后台服务”,其中“后台”一词是相对于前台而言的,具体是指其本身的运行并不依赖于用户可视的UI界面,因此,从实际业务需求上来理解,Service的适用场景应该具备以下条件: ...

  8. [小北De编程手记] : Lesson 03 玩转 xUnit.Net 之 Fixture(上)

    在使用xUnit.Net Framework构建单元测试或自动化测试项目的时候,无论是针对一些比较耗费资源的对象亦或是为了支持Test case预设数据的能力,我们都需要有一些初始化或是清理相关的动作 ...

  9. Jconsole远程监控tomcat 的JVM内存(linux、windows)

    Jconsole是JDK自带的监控工具,在JDK/bin目录下可以找到.它用于连接正在运行的本地或者远程的JVM,对运行在java应用程序的资源消耗和性能进行监控,并画出大量的图表,提供强大的可视化界 ...

  10. mybatis公用代码抽取到单独的mapper.xml文件

    同任何的代码库一样,在mapper中,通常也会有一些公共的sql代码段会被很多业务mapper.xml引用到,比如最常用的可能是分页和数据权限过滤了,尤其是在oracle中的分页语法.为了减少骨架性代 ...