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 ...
随机推荐
- 凸包稳定性判断:每条边上是否至少有三点 POJ 1228
//凸包稳定性判断:每条边上是否至少有三点 // POJ 1228 #include <iostream> #include <cstdio> #include <cst ...
- enum 使用
1.说明 enum是一个基本的关键字,却一直没弄清楚怎么用,这次在实现二叉树框架时需要用到常量,特地搜了一下,终于知道怎么用了. 2.enum使用要点 enum声明是一个类型,不是变量. enum经常 ...
- Yii 1 数据库操作 笔记
$result = array( 'id'=>null, 'val'=>0 ); $row1 = Yii::app()->db->createCommand()->ins ...
- about云资源共享
Nosql资源: http://www.aboutyun.com/thread-5655-1-1.html (1)redis安置(2)RedisAdminUI.zip(3)redis安装部署(4) ...
- [札记]IL经典指令解析之方法调度
call.callvirt和calli指令用于完成方法调用,有何区别呢? 1)call使用静态调度,也就是根据引用类型的静态类型来调度方法.call指令根据引用变量的类型来调用方法,因此通常用于调用非 ...
- php--opp--1.什么是面向对象?
面向对象编程(Object Oriented Programming, OOP, 面向对象程序设计)是一种计算机编程架构,OOP的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成 ...
- KMP算法——Javascript实现
腾讯和阿里的笔试刚过去了,里面有很多题都很值得玩味的.之前Blog积累的很多东西,还要平时看的书,都有很大的帮助.这个深有体会啊! 例如,腾讯有一道算法题是吃香蕉(好邪恶的赶脚..),一次吃一根或者两 ...
- 删除Ngnix 日志
删除Ngnix日志的脚本 #!/bin/bash #初始化 LOGS_PATH=$(pwd)/logs YESTERDAY=$(date -d "yesterday" +%Y-%m ...
- hdu 1576 A/B (扩展欧几里德简单运用)
http://acm.hdu.edu.cn/showproblem.php?pid=1576 A/B Time Limit: 1000/1000 MS (Java/Others) Memory Lim ...
- AJAX小练习,防止以后忘记
<div id="content"> <input id="btnShow" type="button" value=&q ...