ios开发——实用技术总结Swift篇&swift常用开发技术总结
swift常用开发技术总结
懒加载:属性,数组(字典),控件。。。
数组(懒加载):
lazy var shops:Array<Dictionary<String, String>> = { return [ [ "icon" : "danjianbao", "name" : "单肩包" ], [ "icon" : "liantiaobao", "name" : "链条包" ], [ "icon" : "qianbao", "name" : "钱包" ], [ "icon" : "shoutibao", "name" : "手提包" ], [ "icon" : "shuangjianbao", "name" : "双肩包" ], [ "icon" : "xiekuabao", "name" : "斜挎包" ] ] }()
读取plist文件
let path = NSBundle.mainBundle().pathForResource("shops", ofType: "plist")! let shopArray:AnyObject = NSArray(contentsOfFile: path)! let dict = shopArray as! NSDictionary let text = dict["name"] as! String label.text = text let imageName = dict["icon"] as! String let image = UIImage(named: imageName) imageView.image = image
将plist数据转模型;
class Shop: NSObject { var name: String! var icon: String! init(dict: [String : String]) { super.init() // self.name = dict["name"] // self.icon = dict["icon"] setValuesForKeysWithDictionary(dict) } }
加载Plist转为模型放到数组中
lazy var shops:NSMutableArray = { let path:String = NSBundle.mainBundle().pathForResource("shops.plist", ofType: nil)! let tempArr:NSMutableArray = NSMutableArray(contentsOfFile: path)! let shopsArrM:NSMutableArray = NSMutableArray(capacity: tempArr.count) for dict in tempArr { let shop: Shop = Shop(dict: dict as! [String : String]) shopsArrM.addObject(shop) } return shopsArrM }()
字典转模型:先来看看Objective—C是怎么写的!
+(NSString *)stringTOjson:(id)temps //把字典和数组转换成json字符串 { NSData* jsonData =[NSJSONSerialization dataWithJSONObject:temps options:NSJSONWritingPrettyPrinted error:nil]; NSString *strs=[[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; return strs; }
利用NSJSONSerialization序列化成NSData,再通过NSString 转成JSON字符串
func toJSONString(dict:NSDictionary!)->NSString{ var data = NSJSONSerialization.dataWithJSONObject(dict, options: NSJSONWritingOptions.PrettyPrinted, error: nil) var strJson=NSString(data: data, encoding: NSUTF8StringEncoding) return strJson }
常用语法分析
关于数组和字典的总结: /****************************************************************************** * * * Inquiry macros * * * * iCocos--Description * * * ******************************************************************************/ /*****数组****/ var s1:Array<String> = ["] var s2:[String] = ["] //let var s3 = [String]() //操作 s1.append(") // 追加 s1 += ["] // 追加 s1.insert(", atIndex: s1.count) //插入 s1.removeAtIndex() //移除s1.removeLast()/s1.removeAtIndex(<#index: Int#>)/s1.removeRange(<#subRange: Range<Int>#>) s1[] = " //修改 //遍历 for (index, value) in enumerate(s1) { } // 遍历 /****************************************************************************** * * * Inquiry macros * * * * iCocos--Description * * * ******************************************************************************/ /******字典******/ var st1:Dictionary<Int, String> = [:"iCocos"] var st2 = [:"iCocos"] var st3 = Dictionary<Int, String>() //操作 st1[] = "iCocos" //增加 st1.removeValueForKey() //移除 st1.removeAtIndex(<#index: DictionaryIndex<Key, Value>#>) st1[] = nil //清空 st1[] = "iCocos" //修改 st1.updateValue() //修改 //遍历 for s in st1.keys {} for ss1 in st1.values {} for (sss, ssss) in st1 {}
ios开发——实用技术总结Swift篇&swift常用开发技术总结的更多相关文章
- iOS 开发——实用技术Swift篇&Swift 懒加载(lazy)
Swift 懒加载(lazy) 在程序设计中,我们经常会使用 * 懒加载 * ,顾名思义,就是用到的时候再开辟空间,比如iOS开发中的最常用控件UITableView,实现数据源方法的时候,通常我们都 ...
- iOS开发——技术精华Swift篇&Swift 2.0和Objective-C2.0混编之第三方框架的使用
swift 语言是苹果公司在2014年的WWDC大会上发布的全新的编程语言.Swift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题.Swift语言采用安全编程模式,且引 ...
- iOS开发——新特性Swift篇&Swift 2.0 异常处理
Swift 2.0 异常处理 WWDC 2015 宣布了新的 Swift 2.0. 这次重大更新给 Swift 提供了新的异常处理方法.这篇文章会主要围绕这个方面进行讨论. 如何建造异常类型? 在 i ...
- iOS开发——新特性OC篇&Swift 2.0新特性
Swift 2.0新特性 转眼间,Swift已经一岁多了,这门新鲜.语法时尚.类型安全.执行速度更快的语言已经渐渐的深入广大开发者的心.我同样也是非常喜爱这门新的编程语言. 今年6月,一年一度 ...
- iOS开发——Swift篇&Swift关键字详细介绍
Swift关键字详细介绍 每一种语言都有相应的关键词,每个关键词都有他独特的作用,来看看swfit中的关键词: 关键词: 用来声明的: “ class, deinit, enum, extension ...
- iOS开发——动画总结OC篇&所有常用动画总结
所有常用动画总结 先来装下B,看不懂没关系,其实我也看不懂-
- .net开发笔记(十三) Winform常用开发模式第一篇
上一篇博客最后我提到“异步编程模型”(APM),之后本来打算整理一下这方面的材料然后总结一下写篇文章与诸位分享,后来在整理的过程中不断的延伸不断地扩展,发现完全偏离了“异步编程”这个概念,前前后后所有 ...
- iOS开发——实战总结OC篇&网易彩票开发知识点总结
网易彩票开发知识点总结 关于网易彩票开发中遇到了不少的坑,弄了好久才弄懂,或者有些犹豫很久没用就不记得了,所以这里就总结了一下,希望以后不会忘记,就算忘记也能快速查看! /************** ...
- iOS开发Swift篇—(三)字符串和数据类型
iOS开发Swift篇—(三)字符串和数据类型 一.字符串 字符串是String类型的数据,用双引号""包住文字内容 let website = "http://www ...
随机推荐
- 面积最大的全1子矩阵--九度OJ 1497
题目描述: 在一个M * N的矩阵中,所有的元素只有0和1,从这个矩阵中找出一个面积最大的全1子矩阵,所谓最大是指元素1的个数最多. 输入: 输入可能包含多个测试样例.对于每个测试案例,输入的第一行是 ...
- I-frame、B-frame、P-frame及DTS、PTS的关系(转)
基本概念: I frame :帧内编码帧 又称intra picture,I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象. ...
- ef6 code first
http://www.cnblogs.com/Bce-/p/3684643.html http://www.cnblogs.com/Gyoung/tag/Entity%20Framework/ htt ...
- Hadoop概念学习系列之常见的分布式文件系统(二十六)
常见的分布式文件系统有,GFS.HDFS.Lustre .Ceph .GridFS .mogileFS.TFS.FastDFS等.各自适用于不同的领域.它们都不是系统级的分布式文件系统,而是应用级的分 ...
- [翻译]创建ASP.NET WebApi RESTful 服务(9)
一旦成功的发布API后,使用者将依赖于你所提供的服务.但是变更总是无法避免的,因此谨慎的制定ASP.NET Web API的版本策略就变得非常重要.一般来说,新的功能需要无缝的接入,有时新老版本需要并 ...
- LeetCode292:Nim Game
You are playing the following Nim Game with your friend: There is a heap of stones on the table, eac ...
- INVALID_SOCKET的值
INVALID_SOCKET的值 (2011-06-26 15:06:45) 标签: 杂谈 INVALID_SOCKET的值不是-1,原因参考basetsd.h和WinSock2.h: typedef ...
- thinkphp 定位查询 Model:last您所请求的方法不存在!
thinkphp 定位查询 Model:last您所请求的方法不存在! 用thinkphp3.1做项目的时候为了获取记录表中最后一个id用到了last()方法,出现了这个错误:Model:last ...
- 分享吉林大学机械科学与工程学院,zhao jun 博士的Halcon学习过程及知识分享
分享吉林大学机械科学与工程学院,zhao jun 博士的Halcon学习过程及知识分享 全文转载zhao jun 博士的新浪博客,版权为zhaojun博士所有 原文地址:http://blog.sin ...
- C#和JavaScript的区别
Strong and Loose Typing: 强弱比较 // C# var customer = new Customer(); //var is compiler inferred //Java ...