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. Mac OS10.9 下python开发环境(eclipse)以及自然语言包NLTK的安装与注意

    折腾了大半天,终于把mbp上python自然语言开发环境搭建好了. 第一步,安装JDK1.7 for mac MacOS10.9是自带python2.7.5的,够用,具体的可以打开终端输入python ...

  2. C++中string 的使用

    string类的构造函数:string(const char *s);    //用c字符串s初始化string(int n,char c);     //用n个字符c初始化此外,string类还支持 ...

  3. 正整数N是否是素数

    来自:[数据结构与算法分析——C语言描述]练习2.13 问题描述: a. 编写一个程序来确定正整数N是否是素数. b. 你的程序在最坏的情形下的运行时间是多少(用N表示)? c. 令B等于N的二进制表 ...

  4. 第三百四十三天 how can I 坚持

    今天又莫名其妙的烦起来了,好没劲. 现在还在看电视机<太阳的后裔>,晚上也没怎么吃饭,干吃了两个馒头,老干妈+生洋葱,好凄惨. 上班看了好长时间会,乱七八糟的. 坚决不跳槽,但得坚持自己的 ...

  5. IdTCPServer

    IdTCPServer1 Server本身就支持多线程,一个服务端连接多个客户端. IdTCPServer1.Bindings.Add.IP := '127.0.0.1';IdTCPServer1.B ...

  6. windows下揪出java程序占用cpu很高的线程 并找到问题代码 死循环线程代码

    我的一个java程序偶尔会出现cpu占用很高的情况 一直不知道什么原因 今天终于抽时间解决了 系统是win2003 jvisualvm 和 jconsole貌似都只能看到总共占用的cpu 看不到每个线 ...

  7. Python序列(Sequence)

    Sequence是Python的一种内置类型(built-in type),内置类型就是构建在Python Interpreter里面的类型,三种基本的Sequence Type是list(表),tu ...

  8. IOS学习之路十二(UITableView下拉刷新页面)

    今天做了一个下拉刷新的demo,主要用到了实现的开源框架是:https://github.com/enormego/EGOTableViewPullRefresh 运行结果如下: 实现很简单下载源代码 ...

  9. HDU 5794 A Simple Chess (Lucas + dp)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5794 多校这题转化一下模型跟cf560E基本一样,可以先做cf上的这个题. 题目让你求一个棋子开始在( ...

  10. 基于LDA对关注的微博用户进行聚类

    转自:http://www.datalab.sinaapp.com/?p=237 最近看了LDA以及文本聚类的一些方法,写在这里算是读书笔记.文章最后进行了一个小实验,通过爬取本人在微博上关注的人的微 ...