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 ...
随机推荐
- 【LeetCode】202 - Happy Number
Write an algorithm to determine if a number is "happy". A happy number is a number defined ...
- SVN的搭建和使用总结
Subversion是优秀的版本控制工具,其具体的的优点和详细介绍就不多做介绍,主要说一下SVN的服务端搭建.客户端安装.使用及出现的问题的解决办法. 首先来下载和搭建SVN服务器. 现在Subver ...
- 如何引用CSS样式表
如何使用样式 当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化.有以下三种方式来插入样式表: 1.外部样式表 当样式需要被应用到很多页面的时候,外部样式表将是理想的选择.使用外部样式 ...
- freetds链接错误
用tsql连接mssql出现下面的错误 tsql -H 192.168.1.100 -p 1433 -U sa Password: sa locale is "en_US.UTF-8&quo ...
- 一起学习 微服务(MicroServices)-笔记
笔记 微服务特性: 1. 小 专注与做一件事(适合团队就是最好的) 2. 松耦合 独立部署 3. 进程独立 4. 轻量级通信机制 实践: 1. 微服务周边的一系列基础建设 Load Balancing ...
- vim中大小写转化
@(编程) gu或者gU 形象一点的解释就是小u意味着转为小写:大U意味着转为大写. 整篇文章大写转化为小写 打开文件后,无须进入命令行模式.键入: ggguG 解释一下: ggguG分作三段gg g ...
- 创建Android Virtual Device
参考http://book.51cto.com/art/201302/380026.htm Linux版的Android SDK没有提供可视化的AVD Manager管理工具,创建AVD可以使用and ...
- LeetCode258:Add Digits
Given a non-negative integer num, repeatedly add all its digits until the result has only one digit. ...
- JQuery点击收起,点击展开以及部分非空小验证
<tr> <td nowrap align="right" width="18%"> 解决方案: </td> <td ...
- Codeforces 706 C. Hard problem (dp)
题目链接:http://codeforces.com/problemset/problem/706/C 给你n个字符串,可以反转任意一个字符串,反转每个字符串都有其对应的花费ci. 经过操作后是否能满 ...