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 ...
随机推荐
- Page 16 Exercises 1.2.3 -------Introduction to Software Testing (Paul Ammann and Jeff Offutt)
Below are four faulty programs. Each includes a test case that results in failure. Answer the follow ...
- 解决Socket.IO在IE8下触发disconnect时间过长
本文地址: http://www.cnblogs.com/blackmanba/p/solve-socketIO-IE8-emit-disconnect-too-long.html或者http://f ...
- SQL SERVER 2008 R2 SP3 发布
今晚上刚发现,微软很低调啊 下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=44271 整合SP3的Express系列版本还没 ...
- 使用arm开发板搭建无线mesh网络(一)
由于项目的需要,老板让我使用arm开发板(友善之臂的tiny6410)搭建无线mesh网络.一般而言,无线自组织网络的网络设备都是由用户的终端设备来充当,这些终端设备既要处理用户的应用数据,比如娱乐, ...
- 【全国互虐】Fibonacci矩阵
orz啊又被屠了 人生如此艰难 题意: 给定一个k维的n^k的超立方体 超立方体的元素Ai1,i2,...,ik 的值为f(i1+i2+...+ik-k+1) f为斐波那契数列 求该超立方体的所有元素 ...
- html5基础知识
html5+css3 html5定义很多简便东西和宽松语法: 文档头: <!doctype html> 文档编码: <meta cha ...
- 第三百五十一天 how can I 坚持
是应该喜欢还是厌烦这种状态,犹豫不定,毫无目标. 人不贪,谁信,我嘴上说我不贪,可是内心已经把我出卖了,要不怎么股票会被套呢. 别人贪婪时我恐惧,别人恐惧时我贪婪,我成了什么,别人贪婪时,我狂妄,别人 ...
- 【MySql】性能优化之分析命令
一 当发现程序运行比较慢的时候,首先排除物力资源问题之后,就将注意力转向mysq数据库: 1.首先确定运行慢的sql语句: mysql> show full processlist; 2.确认低 ...
- LightOJ 1259 Goldbach`s Conjecture (哥德巴赫猜想 + 素数筛选法)
http://lightoj.com/volume_showproblem.php?problem=1259 题目大意:给你一个数n,这个数能分成两个素数a.b,n = a + b且a<=b,问 ...
- class-dump-z下载地址
支持MAC.Linux.Win和iOS各个版本 http://download.csdn.net/detail/yukang1989/8414567