数据模型使用(ios),浅谈ios和swift数据模型使用,set和get方法使用
来源:互联网 发布:自学编程入门 编辑:程序博客网 时间:2024/06/03 21:54
浅谈ios中oc和swift数据模型的使用
开发工具:xcode7.3
简单理解oc和swift数据模型的使用。
调用:
swift中的set和get方法
声明:
使用swift用模型给view赋值
以TableViewCell为例,
在cell中使用model赋值两种方法:
一,直接声明实现一个函数传入Model即可,例如
func cellForModel(model : Model) -> () {
在该函数实现中赋值,在cell实例化后,使用cell的对象调用这个函数,
cell.cellForModel(modelArray![indexPath.row])
二,使用set和get方法赋值,
首先声明两个Model类型的变量,便于代码阅读,这两个变量名称最好相似,一下划线区分它俩的不同
在其中一个变量后面实现set和get方法,在set方法中赋值,
在cell实例化后,使用cell的对象调用声明的属性赋值即可,例如
cell.model = modelArray![indexPath.row]
代码示例:
调用代码示例:
在Model.m中
调用代码实例:
使用模型对象给View赋值
以TableViewCell为例
数据模型给cell赋值:
常用方法两种:
一
使用set方法赋值,在.h文件中声明一个类型为Model的变量,在.m文件夹重写set方法,在set方法内部赋值
二
声明传参变量为Model的函数,调用赋值,直接传入Model的参数,在函数实现内部赋值
示例代码:
在TableViewCell.h中
在TableViewCell.m中
调用代码示例:
开发工具:xcode7.3
简单理解oc和swift数据模型的使用。
源码:swiftDemo ocDemo
使用swift给模型赋值:
赋值方法三种:
一,属性逐一赋值
二,在构造函数中赋值
三,重写setValuesForKeysWithDictionary赋值
对于构造函数(或是重写setValuesForKeysWithDictionary方法)赋值,操作如下:
声明一个静态字符串数组,由属性所对应的键(key)构成
使用for循环遍历静态字符串数组,
在for循环遍历里,使用key取出dictionary的value,并赋值给Model
setValue(value: AnyObject?, forKey: String)
for循环可以写在构造函数中,
也可以使用重写setValuesForKeysWithDictionary的方法实现
代码:
class Model: NSObject { var name = "" var job = "" var image = "" static let properties = ["name","job","image"] override init() { super.init() } init(dict : [String : AnyObject?]) { super.init() for key in Model.properties { if dict[key] != nil { setValue(dict[key]!, forKey: key) } } } override func setValuesForKeysWithDictionary(keyedValues: [String : AnyObject]) { for key in Model.properties { if keyedValues[key] != nil { setValue(keyedValues[key]!, forKey: key) } } } }
调用:
/*一 模型对象,属性逐一赋值 */ let model = Model.init(); model.name = "Lily" model.job = "teacher" model.image = "icon" /* 二 使用构造函数赋值 */ let m = Model.init(dict: ["name":"lily","job":"Student","image":"icon"]) /* 三 重写setValuesForKeysWithDictionary赋值 */ let model = Model.init(); model.setValuesForKeysWithDictionary(["name":"lily","job":"Student","image":"icon"])
swift中的set和get方法
声明:
var _model : Model? var model : Model?{ get{ return _model } set{ icon.image = UIImage(named: newValue!.image) name.text = newValue!.name job.text = newValue!.job _model = newValue } }使用:
cell.model = modelArray![indexPath.row]
使用swift用模型给view赋值
以TableViewCell为例,
在cell中使用model赋值两种方法:
一,直接声明实现一个函数传入Model即可,例如
func cellForModel(model : Model) -> () {
在该函数实现中赋值,在cell实例化后,使用cell的对象调用这个函数,
cell.cellForModel(modelArray![indexPath.row])
二,使用set和get方法赋值,
首先声明两个Model类型的变量,便于代码阅读,这两个变量名称最好相似,一下划线区分它俩的不同
在其中一个变量后面实现set和get方法,在set方法中赋值,
在cell实例化后,使用cell的对象调用声明的属性赋值即可,例如
cell.model = modelArray![indexPath.row]
代码示例:
class TableViewCell: UITableViewCell { @IBOutlet weak var icon: UIImageView! @IBOutlet weak var name: UILabel! @IBOutlet weak var job: UILabel! var _model : Model? var model : Model?{ get{ return _model } set{ icon.image = UIImage(named: newValue!.image) name.text = newValue!.name job.text = newValue!.job _model = newValue } } func cellForModel(model : Model) -> () { icon.image = UIImage(named: model.image) name.text = model.name job.text = model.job }}
调用代码示例:
/* 一 使用函数赋值 */ cell.cellForModel(modelArray![indexPath.row]) /* 二 使用set方法赋值 */ cell.model = modelArray![indexPath.row]
Ios中使用OC时,
模型赋值
oc数据模型
赋值方法常用的两种,
一
在.h文件的接口中声明属性(.m中接口声明的属性类外部不可以访问),使用时对属性逐一赋值
二
在.h文件的接口中声明属性(.m中接口声明的属性类外部不可以访问),使用构造函数赋值,需要注意,构造函数声明需写在.h的接口中,这样类外部可以调用该函数
构造函数有两种,类函数和类函数,它们区别在于调用时,类函数使用类名直接调用,函数需要构造类对象,才能调用
在构造函数中,使用setValuesForKeysWithDictionary赋值
实例代码:
在Model.h中
#import <Foundation/Foundation.h>@interface Model : NSObject@property ( nonatomic , copy ) NSString * name;@property ( nonatomic , copy ) NSString * job;@property ( nonatomic , copy ) NSString * image;- (instancetype)initWithDict : (NSDictionary *) dict ;+ (instancetype)model : (NSDictionary *) dict ;@end
在Model.m中
#import "Model.h"@implementation Model- (instancetype)initWithDict:(NSDictionary *)dict { if (self = [super init]) { [self setValuesForKeysWithDictionary:dict]; } return self;}+ (instancetype)model:(NSDictionary *)dict { /* Model *m = [[super alloc]init]; if (m) { [m setValuesForKeysWithDictionary:dict]; } return m; */ return [[super alloc]initWithDict:dict];}@end
调用代码实例:
/* 构造函数赋值 一 */ Model * model0 = [Model model:@{@"name":@"lily",@"job":@"Teacher",@"image":@"icon"}]; /* 构造函数赋值 二 */ Model * model = [[Model alloc]initWithDict:@{@"name":@"lily",@"job":@"Teacher",@"image":@"icon"}]; /* 调用setValuesForKeysWithDictionary */ Model * model = [[Model alloc]init]; [model setValuesForKeysWithDictionary:@{@"name":@"lily",@"job":@"Teacher",@"image":@"icon"}];
使用模型对象给View赋值
以TableViewCell为例
数据模型给cell赋值:
常用方法两种:
一
使用set方法赋值,在.h文件中声明一个类型为Model的变量,在.m文件夹重写set方法,在set方法内部赋值
二
声明传参变量为Model的函数,调用赋值,直接传入Model的参数,在函数实现内部赋值
示例代码:
在TableViewCell.h中
#import <UIKit/UIKit.h>@class Model ;@interface TableViewCell : UITableViewCell@property ( nonatomic , strong ) Model * model ;- (void) cellForModel : (Model *) model ;@end
在TableViewCell.m中
#import "TableViewCell.h"#import "Model.h"@interface TableViewCell ()@property (weak, nonatomic) IBOutlet UIImageView *icon;@property (weak, nonatomic) IBOutlet UILabel *name;@property (weak, nonatomic) IBOutlet UILabel *job;@end@implementation TableViewCell- (void)setModel:(Model *)model { _model = model; _icon.image = [UIImage imageNamed:model.image]; _name.text = model.name; _job.text = model.job ; }- (void)cellForModel:(Model *)model { _icon.image = [UIImage imageNamed:model.image]; _name.text = model.name; _job.text = model.job ; }@end
调用代码示例:
/* set方法赋值 */ cell.model = _modelArray[indexPath.row] ; /* 调用函数赋值 */ [cell cellForModel:_modelArray[indexPath.row]];
0 0
- 数据模型使用(ios),浅谈ios和swift数据模型使用,set和get方法使用
- ios开发(plist文件数据加载) 使用数据模型的方法加载plist文件中的数据
- 使用数据模型抓取和解析JSON数据
- iOS set/get 方法使用注意
- ios-set和get方法
- iOS - 重写set和get方法后,为什么使用时会发生无效?解析命名规范
- get方法和set方法的使用!
- ios多线程浅谈和使用
- iOS 字典和简单数据模型相互转换(通用版)
- 使用反射调用set和get方法
- java set和get方法的使用
- iOS set和get
- iOS OC 和 Swift Cocoapods 的使用
- iOS - Swift 如何使用Masonry和SnapKit
- iOS 理解@property和set&get方法
- ZooKeeper使用(4)-- ZooKeeper的数据模型
- set方法,get方法和类方法的使用
- 【Java】java中的set()和get()方法理解和使用
- 师--链表的结点插入
- zabbix客户端 zabbix-agent 2.4版本安装
- 数据结构-递归
- 在OpenLava中探索Fairshare调度
- 关于文件中的0D、0A
- 数据模型使用(ios),浅谈ios和swift数据模型使用,set和get方法使用
- JPype入门实例
- android触屏震动以及震动强度
- 爬虫入门
- springboot配置异常
- EHCache分布式缓存集群环境配置
- schema文件的三种编写方式
- 猜数字的游戏
- javascript三角函数的使用