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 ...
随机推荐
- C#/.net给textbox添加回车事件
前端js代码,放到<head>标签下 <script type="text/javascript"> function EnterTextBox(butto ...
- linux c编程 -- 线程互斥
#include <stdio.h> #include <pthread.h> #include <unistd.h> #include <stdlib.h& ...
- 记录一下JS正则的坑
JS正则的单行模式有点问题 总之 . 符号匹配换行符号会有问题 暂时的解决方案是 html = html.replace(/[\r\n]/g,""); 附加一个 html = ht ...
- 使用arm开发板搭建无线mesh网络(二)
上篇博文介绍了无线mesh网络和adhoc网络的区别,这篇文章将介绍无线mesh网络的骨干网节点的组建过程.首先需要介绍下骨干网节点的设计方案:每个骨干网节点都是由一块友善之臂的tiny6410 ar ...
- [LeetCode] #167# Two Sum II : 数组/二分查找/双指针
一. 题目 1. Two Sum II Given an array of integers that is already sorted in ascending order, find two n ...
- air手势代码
//下列2句谁放上面谁生效要么触控生效,要么手势生效 Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; Multitouch.inputM ...
- SharePoint咨询师之路:设计之前的那些事四:负载均衡 - web服务器
提示:本系列只是一个学习笔记系列,大部分内容都可以从微软官方网站找到,本人只是按照自己的学习路径来学习和呈现这些知识.有些内容是自己的经验和积累,如果有不当之处,请指正. 容量管理 规模 体系结构 ...
- CSS元素水平居中和垂直居中的方法大全
水平居方法: 1.最熟悉的是给元素定义一个宽度,然后使用margin: body{ width:960px; margin:0 auto;}这个是当我们的定义元素的宽度时显现的,如果我们不能定义宽度时 ...
- Codeforces 27E. Number With The Given Amount Of Divisors (暴力)
题目链接:http://codeforces.com/problemset/problem/27/E 暴力 //#pragma comment(linker, "/STACK:1024000 ...
- URAL 2069 Hard Rock (最短路)
题意:给定 n + m 个街道,问你从左上角走到右下角的所有路的权值最小的中的最大的. 析:我们只要考虑几种情况就好了,先走行再走列和先走列再走行差不多.要么是先横着,再竖着,要么是先横再竖再横,要么 ...