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. 备份数据库SQL Server 2008下实测

    下面的存储过程适用: 1.一次想备份多个数据库. 2.只需要一步操作,在有存储过程的条件下. 3.可以根据自己的需要修改存储过程. /*----------------------------- De ...

  2. hadoop是什么?

    在如今这个信息高速发展的今天,hadoop也越来越火了,那么到底是什么原因让hadoop如此的火,接下来新霸哥将详细的为了介绍,并让你快速的任何hadoop是什么? hadoop思想起源:Google ...

  3. BITED-Windows8应用开发学习札记之三:如何在Win8应用中实现数据绑定

    在微软官方提供的资源中,我们可以看到SampleDataSource.cs已经拥有了定义好了相应的数据结构以及实现类: 建立本地数据 由于我们已经有数据以及相应的数据类,我们需要做的仅仅是将数据放进数 ...

  4. [转]天龙八部的BillingServer

    从字面上看,Billing是计费的,应该处理玩家在线时间或者包月之类.但是天龙八部是免费游戏,不需要算时间来计费.从代码中看,BillingServer也比较简单,它有一个连接到Web服务器,并监听一 ...

  5. brew 更新

    更新: brew update brew update —system 安装, 如:brew install unrar 卸载, 如:brew uninstall unrar

  6. Ngix 移动端与Pc端 反向代理判断

    如神马搜索和百度(http://www.baidu.com),当用桌面浏览器和移动浏览器访问的结果是不一样的.其中的手段可能有两种: 转载Ngix反向代理判断 服务端直接判断UA输出不同的界面,JAV ...

  7. 第二百三十六天 how can I 坚持

    太冷了,羽绒服没帽子,冻的耳朵疼. 她今天没有上班,原来是调休了. 其实应该是想到点啥,就应该写下,到晚上写就又忘了,什么都不记得了,这就是个需求吧. 睡觉.

  8. 在Windows Server2008R2中导入Excel不能使用Jet 4.0的解决方法

    一直使用以下代码从Excel中取数据,速度快方便: string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Dat ...

  9. quartz 的job中获取到applicationContext

    第一步: 定义SchedulerFactoryBean的applicationContextSchedulerContextKey <bean name="scheduler" ...

  10. POJ3974 Palindrome (manacher算法)

    题目大意就是说在给定的字符串里找出一个长度最大的回文子串. 才开始接触到manacher,不过这个算法的确很强大,这里转载了一篇有关manacher算法的讲解,可以去看看:地址 神器: #includ ...