Cwift的专栏

有勇气推倒柏林墙,激励更多iOS程序员走出舒适区

排序:
默认
按更新时间
按访问量

最新文章请访问博主个人博客

我现在不在 CSDN 上写文章了,搭建了个人博客:phpswift.com

2017-08-10 14:07:31

阅读数:290

评论数:0

我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。

我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。

2018-02-07 15:30:48

阅读数:93

评论数:0

Swift 3.0封装 URLSession 的GET/SET方法代替 Alamofire

升级到 Swift3.0 之后,新版本的 Alamofire 只支持 iOS 9.0 以上的系统,如果要适配 iOS 8,需要自己封装 URLSession,下面是笔者的方案: 这里使用的是 Swift 自己的原生类型 URLSession,而不是NSURLSession。 Alamofire...

2016-10-10 12:18:25

阅读数:7358

评论数:6

关于“幽灵架构”的总结:适用场景与方法重载

前几篇博文对“幽灵架构”做了用法的介绍和相关技术点的补充,本文是一篇总结性质的文章,分析该架构的适用场景和限制,首先让我们回顾一下iOS开发的MVC模式,参考斯坦福公开课里Paul老爷子的讲解,如下图所示: 在MVC模式下Model和View是不能直接通信的,在“幽灵架构”体系中Model和...

2016-05-13 12:02:40

阅读数:5982

评论数:5

关于“幽灵架构”的补充说明5:改造控制器

Swift中的泛型有非常多的用处,除了我在之前介绍的方法中作为占位符之外,还可以被用在协议中,构成一个泛型协议,那么遵守这个泛型协议的成员就会变成泛型成员。还用我们之前的事件节日提醒Demo来展示,在之前的版本中我们使用了一个TableView来展示数据,现在如果有新的需求,需要在Collecto...

2016-05-12 23:24:49

阅读数:5378

评论数:1

关于“幽灵架构”的补充说明4:协议的应用场景与局限性

再次解释一下协议的意义:定义某个功能模块的最小粒度,因为Swift是单继承,而无论是值类型还是引用类型都可以遵守多个协议,因此协议是比父类的粒度还要小的功能模块。协议的功能定义一定要具体并且严格,someObject:Protocol where …中where子句的匹配条件只能针对someObj...

2016-05-12 10:45:45

阅读数:4757

评论数:0

关于“幽灵架构”的补充说明3:为什么不会产生“循环引用”

承接上文,已经简明阐述了使用Struct代替Class的好处,使用Class会使我们的程序出现“意外的共享”以及“循环引用”之类的危险,传统面向对象开发中对Class的依赖主要来自于我们对“继承”的依赖。Swift2.0引入协议扩展后,之前的“类-继承”所能实现的功能使用“结构体(枚举)-协议-协...

2016-05-11 23:57:20

阅读数:4102

评论数:0

关于“幽灵架构”的补充说明2:Struct以及Copy - on -Write

在“幽灵架构”Demo中我把两个数据模型声明成了Struct,苹果WWDC2015的414号视频讲解了非常多关于Struct的优势,其实也是所有值类型的优势。首先Swift标准库中绝大部分是值类型的,值类型的值传递是通过copy的,而作为一门静态语言,Swift要求所有的对象都有明确的类型,明确的...

2016-05-11 14:38:13

阅读数:2029

评论数:0

关于“幽灵架构”的补充说明1:协议中的方法定义

承接上一篇博文,上一篇的篇幅有点太长了,我觉得有一些相关的技术点需要说明,所以重新写几篇博文。这个系列的文章将要说明以下几个问题: 1.giveData和getData在各自协议中的位置 2.使用struct代替class的好处 3.“幽灵架构”为什么不会产生循环引用 4.协议的应用场景与...

2016-05-10 23:37:45

阅读数:6885

评论数:0

Swift黑科技:还在争论MVC和MVVM?博主独创幽灵架构MV!

本人原创,长文慎入,但此文绝对不会让你失望。 WWDC2015已经过去一段时间了,我发现自从更新了Swift2.0到现在的Swift2.2,我只是跟着版本更新了所有需要更新的语法,依旧自以为是很熟练的Swift程序员。刚入职比较闲碰巧看到了1月份的中国首届Swift大会上大牛们的分享,突然陷入了...

2016-04-11 00:54:07

阅读数:11286

评论数:15

写在新书《Swift开发手册:技巧与实战》出版之际

1月份的时候新书出版了,正值研究生毕业之际,想写点什么又无法抵抗毕业浮躁的心态,所以推到了正式入职之后。首先当然还是想安利一波,新书封面见如下: 2014年年底因为跟同学组队参加竞赛的关系,踏入了iOS这个全新的领域,在传统的OC和新晋的Swift之间,我选择了Swift,很幸运...

2016-03-04 00:06:22

阅读数:2471

评论数:19

Swift2编程之道:POP+MVVM

Swift2.0中引入了协议扩展的特性,并且建议开发者一切从协议(Protocol)出发,经过几个月的学习探索,博主发现Swift作为一门面向协议编程(POP)的语言非常适合时下火热的MVVM架构。MVVM已经提出有一段时间了,如果你还不懂什么是MVVM,建议先去补充相关的知识,再回到本文中。 ...

2016-03-01 00:38:54

阅读数:2083

评论数:0

【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记47 文件系统Demo

本话将展示如何使用文件系统保存相机中保存的封面照片,使用一个提前准备好的封面设置Demo,在设置完imageView的image时候把新的图片保存到文件系统中。func imagePickerController(picker: UIImagePickerController!, didFinis...

2015-10-11 22:32:58

阅读数:1810

评论数:0

【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记46 Persistence持久化

本话将介绍IOS中的四种数据持久化方式: Archiving SQLite File System Core Data 前面我们将结果NSUsrDefaults的用法,它是针对小数据量的持久化技术,本话的四种方式是针对大数据量的操作。 1.Archiving Archiving是一种...

2015-10-11 21:08:53

阅读数:1860

评论数:0

使用Swift去掉字符串中的空格

笔试面试时经常会出这样的问题:从某个字符串中删除多余的空格,因为英文是使用空格进行分词的,而URL中通常会包括非常多的特殊字符,所以这是一种很常用的做法。和OC中一样,在swift中也可以使用NSCharacterSet类来实现。对于字符串删空格操作,通常有两种情况: 1.删掉字符串首位的空格:...

2015-09-07 23:32:35

阅读数:6750

评论数:0

Swift实现的快速排序及sorted方法的对比

Swift语言有着优秀的函数式编程能力,面试的时候面试官都喜欢问我们快速排序,那么用Swift如何实现一个快速排序呢?首先扩展Array类:extension Array { var decompose : (head: T, tail: [T])? { return (c...

2015-09-07 22:28:55

阅读数:5285

评论数:2

【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记45 Embed Segues

Embed segues是嵌入过渡,把一个MVC嵌入另一个MVC中,使用起来很简单。 只需要把需要嵌入的MVC放到另一个MVC上面即可,处理该segue的方法与其他segue没有区别,但是有一点是必须注意的,在prepareForSegue的时候,嵌入的MVC的outlet是没有初始化的,所以不...

2015-08-29 16:15:20

阅读数:1266

评论数:0

【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记44 Popover Segue

在上一话中我们看了一个Demo,使用modal的方式,但其实如果要考虑到适配Iphone和Ipad设备的话,默认的modal会充满屏幕,而popover可以只占据屏幕上的一小块,之前我们讲过在Iphone中使用popover看起来和modal是一样的。实则不然,popover有很多设置在Iphon...

2015-08-28 22:41:42

阅读数:1287

评论数:0

【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记43 保护NSNotification的内存安全

在之前的Demo中讲解过NSNotification的用法,NSNotification是使用NSOperationQueue实现的,所以使用NSNotification不可避免地会陷入内存问题,比如下面这个情况:在storyboard中准备两个场景。在第一个场景中显示一个label,旁边有一个按...

2015-08-28 12:11:14

阅读数:1309

评论数:2

【我们都爱Paul Hegarty】斯坦福IOS8公开课个人笔记42 Modal Segue(模态过渡)

modal segue会占据整个屏幕,所以使用的使用一定要小心,提前做好返回的处理,使用modal segue的好处是在执行某项操作前必须,比如我们熟悉的alert和actionsheet。 比如手机中的联系人页面,点击右上角的加号会出现一个添加联系人的页面,整个页面的划出方式就是modalse...

2015-08-27 15:50:04

阅读数:1251

评论数:0

提示
确定要删除当前文章?
取消 删除