iOS-Swift-Plist-KVC

前言

最近被swift深深的迷住了,但是不知道写点什么好,就从基础的开始写吧.
本篇博客主要内容是 从Plist中加载数据,自定义cell,KVC等

上代码

创建一个DataList.plist内容如下

这里写图片描述

再创建一个Model类Model.swift
import UIKit
class Model: NSObject {
    // 如果数据中有值但是这里没有的话走这个方法把值弃掉
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {
        return ;
    }
    // 姓名
    var name:String = ""
    // 年龄
    var age:String = ""
    // 详情
    var content:String = ""
}
在StoryBoard中创建tableView并关联属性和代理数据源等

这里写图片描述

然后创建MyCell.swift 并创建Xib:

这里写图片描述

import UIKit

class MyCell: UITableViewCell {
    // 姓名
    @IBOutlet weak var nameLabel: UILabel!
    // 年龄
    @IBOutlet weak var ageLabel: UILabel!
    // 详情
    @IBOutlet weak var detailLabel: UILabel!
    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }
    override func setSelected(selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }
}
然后在ViewController.swift中写入以下代码
import UIKit

class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {

    @IBOutlet weak var tableView: UITableView!
    var modelArr:NSMutableArray = []
    override func viewDidLoad() {
        // 封装方法
        layoutView()
    }
    func layoutView(){
        // 注册cell
        tableView.registerNib(UINib.init(nibName: "MyCell", bundle: nil), forCellReuseIdentifier: "myCell")
        // 取出Plist url
        let fileUrl = NSBundle.mainBundle().URLForResource("DataList", withExtension: "plist")
        // 到出数组
        let dataArr = NSArray(contentsOfURL: fileUrl!)
        // 快速遍历出数组中的字典
        for dic in dataArr!{
            // 创建对象
            let model = Model()
            // 将快速枚举值进行类型转换
            let dica:Dictionary<String,AnyObject> = dic as! Dictionary

            // 数据转模型
            model.setValuesForKeysWithDictionary(dica)

            // 添加入数组中
            modelArr.addObject(model)
        }
    }
    // 区数
    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 1;
    }
    // 行数
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return modelArr.count;
    }
    // cell
     func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        // 重用
        let cell:MyCell =  tableView.dequeueReusableCellWithIdentifier("myCell", forIndexPath: indexPath) as! MyCell
        // 取消选中变黑
        cell.selectionStyle = UITableViewCellSelectionStyle.None
        // 取出对象
        let model = modelArr[indexPath.row] as! Model
        // 赋值
        cell.nameLabel.text = model.name
        cell.ageLabel.text = model.age
        cell.detailLabel.text = model.content
        return cell
    }

    func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
        return 121;
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}

效果图:

这里写图片描述

github:https://github.com/Lafree317/Swift-Plist-KVC


本人还是一只小菜鸡,不过是一只热心肠的菜鸡,如果有需要帮助或者代码中有更好的建议的话可以发邮件到lafree317@163.com中,我们一起进步XD

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值