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常用开发技术总结的更多相关文章

  1. iOS 开发——实用技术Swift篇&Swift 懒加载(lazy)

    Swift 懒加载(lazy) 在程序设计中,我们经常会使用 * 懒加载 * ,顾名思义,就是用到的时候再开辟空间,比如iOS开发中的最常用控件UITableView,实现数据源方法的时候,通常我们都 ...

  2. iOS开发——技术精华Swift篇&Swift 2.0和Objective-C2.0混编之第三方框架的使用

    swift 语言是苹果公司在2014年的WWDC大会上发布的全新的编程语言.Swift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题.Swift语言采用安全编程模式,且引 ...

  3. iOS开发——新特性Swift篇&Swift 2.0 异常处理

    Swift 2.0 异常处理 WWDC 2015 宣布了新的 Swift 2.0. 这次重大更新给 Swift 提供了新的异常处理方法.这篇文章会主要围绕这个方面进行讨论. 如何建造异常类型? 在 i ...

  4. iOS开发——新特性OC篇&Swift 2.0新特性

    Swift 2.0新特性     转眼间,Swift已经一岁多了,这门新鲜.语法时尚.类型安全.执行速度更快的语言已经渐渐的深入广大开发者的心.我同样也是非常喜爱这门新的编程语言. 今年6月,一年一度 ...

  5. iOS开发——Swift篇&Swift关键字详细介绍

    Swift关键字详细介绍 每一种语言都有相应的关键词,每个关键词都有他独特的作用,来看看swfit中的关键词: 关键词: 用来声明的: “ class, deinit, enum, extension ...

  6. iOS开发——动画总结OC篇&所有常用动画总结

    所有常用动画总结 先来装下B,看不懂没关系,其实我也看不懂-

  7. .net开发笔记(十三) Winform常用开发模式第一篇

    上一篇博客最后我提到“异步编程模型”(APM),之后本来打算整理一下这方面的材料然后总结一下写篇文章与诸位分享,后来在整理的过程中不断的延伸不断地扩展,发现完全偏离了“异步编程”这个概念,前前后后所有 ...

  8. iOS开发——实战总结OC篇&网易彩票开发知识点总结

    网易彩票开发知识点总结 关于网易彩票开发中遇到了不少的坑,弄了好久才弄懂,或者有些犹豫很久没用就不记得了,所以这里就总结了一下,希望以后不会忘记,就算忘记也能快速查看! /************** ...

  9. iOS开发Swift篇—(三)字符串和数据类型

    iOS开发Swift篇—(三)字符串和数据类型 一.字符串 字符串是String类型的数据,用双引号""包住文字内容  let website = "http://www ...

随机推荐

  1. iOS优秀博客收录(持续更新)

    唐巧 王巍 破船之家 NSHipster Limboy 无网不剩 念茜的博客 Xcode Dev Ted’s Homepage txx’s blog KEVIN BLOG 阿毛的蛋疼地 亚庆的 Blo ...

  2. 王家林的“云计算分布式大数据Hadoop实战高手之路---从零开始”的第十一讲Hadoop图文训练课程:MapReduce的原理机制和流程图剖析

    这一讲我们主要剖析MapReduce的原理机制和流程. “云计算分布式大数据Hadoop实战高手之路”之完整发布目录 云计算分布式大数据实战技术Hadoop交流群:312494188,每天都会在群中发 ...

  3. Python 代码性能优化技巧(转)

    原文:Python 代码性能优化技巧 Python 代码优化常见技巧 代码优化能够让程序运行更快,它是在不改变程序运行结果的情况下使得程序的运行效率更高,根据 80/20 原则,实现程序的重构.优化. ...

  4. SA

    hdu 4029 题意:给你一个字符矩阵,统计不同的子矩阵的个数: 分析:枚举子矩阵的宽度w,对于每一个w,将每一行长度可以是w的字符串HASH成一个值,然后用map标记,因为宽确定了,hash完之后 ...

  5. Qt Creator无法用“UTF-8”编码解码

    在Qt Creator 里打开其他编辑器的代码时有时会提示: 无法用"UTF-8"编码解码     在文件上右键使用NotePad++编辑器打开:     选择->格式-&g ...

  6. HDU 5534 Partial Tree (完全背包变形)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5534 题意: 给你度为1 ~ n - 1节点的权值,让你构造一棵树,使其权值和最大. 思路: 一棵树上 ...

  7. Educational Codeforces Round 5 E. Sum of Remainders (思维题)

    题目链接:http://codeforces.com/problemset/problem/616/E 题意很简单就不说了. 因为n % x = n - n / x * x 所以答案就等于 n * m ...

  8. Android 显示/隐藏 应用图标

    PackageManager packageManager = getPackageManager(); ComponentName componentName = new ComponentName ...

  9. hdoj 5371 Hotaru's problem

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5371 这道题用到了Manacher算法,首先简单介绍一下Manacher算法: ----------- ...

  10. Eclipse 和 NetBeans 快捷键即其他常用功能比较

    按: 自己用 Eclipse, 常用的也就这些功能, 在用 NetBeans 时, 有些不顺手, 因此列表如下. Eclipse和NetBeans常用快捷键对比:  功能  Eclipse     N ...