https://weibo.com/277195544?refer_flag=1005055013_
我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。
我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。
我现在不在 CSDN 上写文章了,搭建了个人博客:phpswift.com ...
升级到 Swift3.0 之后,新版本的 Alamofire 只支持 iOS 9.0 以上的系统,如果要适配 iOS 8,需要自己封装 URLSession,下面是笔者的方案: 这里使用的是 Swift 自己的原生类型 URLSession,而不是NSURLSession。
升级到 Swift3.0 之后,新版本的 Alamofire 只支持 iOS 9.0 以上的系统,如果要适配 iOS 8,需要自己封装 URLSession,下面是笔者的方案: 这里使用的是 Swift 自己的原生类型 URLSession,而不是NSURLSession。
前几篇博文对“幽灵架构”做了用法的介绍和相关技术点的补充,本文是一篇总结性质的文章,分析该架构的适用场景和限制,首先让我们回顾一下iOS开发的MVC模式,参考斯坦福公开课里Paul老爷子的讲解...
前几篇博文对“幽灵架构”做了用法的介绍和相关技术点的补充,本文是一篇总结性质的文章,分析该架构的适用场景和限制,首先让我们回顾一下iOS开发的MVC模式,参考斯坦福公开课里Paul老爷子的讲解...
Swift中的泛型有非常多的用处,除了我在之前介绍的方法中作为占位符之外,还可以被用在协议中,构成一个泛型协议,那么遵守这个泛型协议的成员就会变成泛型成员。
再次解释一下协议的意义:定义某个功能模块的最小粒度,因为Swift是单继承,而无论是值类型还是引用类型都可以遵守多个协议,因此协议是比父类的粒度还要小的功能模块。
承接上文,已经简明阐述了使用Struct代替Class的好处,使用Class会使我们的程序出现“意外的共享”以及“循环引用”之类的危险,传统面向对象开发中对Class的依赖主要来自于我们对“继承”的依赖。
在“幽灵架构”Demo中我把两个数据模型声明成了Struct,苹果WWDC2015的414号视频讲解了非常多关于Struct的优势,其实也是所有值类型的优势。
承接上一篇博文,上一篇的篇幅有点太长了,我觉得有一些相关的技术点需要说明,所以重新写几篇博文。
本人原创,长文慎入,但此文可能会改写你的编程风格。我认为数据和模型交互的关键问题是如何处理数据源和视图源本身的异构性。
1月份的时候新书出版了,正值研究生毕业之际,想写点什么又无法抵抗毕业浮躁的心态,所以推到了正式入职之后。
本话将展示如何使用文件系统保存相机中保存的封面照片,使用一个提前准备好的封面设置Demo,在设置完imageView的image时候把新的图片保存到文件系统中。
本话将介绍IOS中的四种数据持久化方式: Archiving SQLite File System Core Data 前面我们将结果NSUsrDefaults的用法,它是针对小数据量的持久化技术,本话的四种方式是针对大数据量的操作。
笔试面试时经常会出这样的问题:从某个字符串中删除多余的空格,因为英文是使用空格进行分词的,而URL中通常会包括非常多的特殊字符,所以这是一种很常用的做法。
Swift语言有着优秀的函数式编程能力,面试的时候面试官都喜欢问我们快速排序,那么用Swift如何实现一个快速排序呢?首先扩展Array类: extension Array { ...
Embed segues是嵌入过渡,把一个MVC嵌入另一个MVC中,使用起来很简单。 只需要把需要嵌入的MVC放到另一个MVC上面即可,处理该segue的方法与其他segue没有区别,但是有一点是必须注意的,在prepareForSegue的时候,嵌入的MVC的outlet是没有初始化的,所以不要访问outlet的属性。
在上一话中我们看了一个Demo,使用modal的方式,但其实如果要考虑到适配Iphone和Ipad设备的话,默认的modal会充满屏幕,而popover可以只占据屏幕上的一小块,之前我们讲过在Iphone中使用popover看起来和modal是一样的。
在之前的Demo中讲解过NSNotification的用法,NSNotification是使用NSOperationQueue实现的,所以使用NSNotification不可避免地会陷入内存问题,比如下面这个情况:在storyboard中准备两个场景。
modal segue会占据整个屏幕,所以使用的使用一定要小心,提前做好返回的处理,使用modal segue的好处是在执行某项操作前必须,比如我们熟悉的alert和actionsheet。
在使用Swift进行编程的时候我们经常使用闭包,闭包虽然好,但是不可避免地会带来“保留环”问题,考虑下面的情况: 在某个动画框架中有一个loop函数: func loop(durat...
在Swift中方法终于成为了“一等公民”,可以作为参数被方法利用,在接触今天的内容之前,你必须了解Swift中方法和闭包的概念。
今天参加了某公司2015的校招的机试,大题开放题比较多,有一道大题是Window-LFU比较有意思,当时题目搞了半天没搞明白让干啥- -题目大概是这样的:实现一个Window-LFU缓存(其实就是用数组去缓存,当时差点用NSCache去做),要在API中暴露set、get、remove方法,并且可以指定cache的长度和window的大小。
Alcatraz可以帮助我们扩展Xcode的功能,使用直接集成的方式来管理Xcode插件。 具体办法为: 1.
IOS中的动画有以下几种: 第一种是为UIView的元素添加动画。 第二种是控制器的动画,比如之前介绍的导航控制器的用法。
NSTimer的主要作用是延时调用某个方法。 NSTimer主要使用在run loop中,而run loop是主队列中的东西,我们不介绍run loop ,但是读者需要知道NSTimer是用在主队列中的。
Alert和ActionSheet是IOS中弹出消息的两个工具。 首先它们都是Modal的方式展示的。
之前我们接触过了segue,这是IOS中最基本的传递方式,今天来讲解一下如何进行反向的segue。
上一话介绍了tableView的datasource,本话来介绍另一个重要的部分delegate。
TableView是iOS开发中非常重要的内容。 TableView的作用是在一张表格中展示数据,它是UISCrollView的子类,你会看到当table中的cell条目多的时候你可以通过上下滑动屏幕来获取更多的内容。
本话来介绍UIKit框架中的组件UITextField。 UItextField(文本框)和Label看起来看像,但是文本框是可以编辑的。
在之前我们新建了一个计算器项目,现在我想要给这个计算器项目制作一个桌面图标,可以使用Sketch,这是一款非常棒的软件。
Get是从服务器上获取数据,Post是向服务器传送数据。对于Get方式,服务器端用Requset.QueryString获取变量的值,对于Post方式,服务器端用Request.Form获取提交的数据。
我们的工程中有一个Info.plist文件,之前我们做本地化设置的时候已经接触过这个文件了,里面可以做很多设置。
IOS的生命周期如图所示: 在APP开始运行时,进入绿色的部分,此时APP已经在运行了,但是UI还没有展示到屏幕上。
IOS的生命周期如图所示: 在APP开始运行时,进入绿色的部分,此时APP已经在运行了,但是UI还没有展示到屏幕上。
我们之前在讲解MVC模式的时候提到过,模型的改变是通过广播的形式,然后控制器将调到响应的频率接收到模型的消息,找出模型中的变化,这些变化其中之一就是NSNotification,它是MVC中处理电台的途径之一,实际是一种模型到控制器的通讯。
我们之前在讲解MVC模式的时候提到过,模型的改变是通过广播的形式,然后控制器将调到响应的频率接收到模型的消息,找出模型中的变化,这些变化其中之一就是NSNotification,它是MVC中处理电台的途径之一,实际是一种模型到控制器的通讯。
在IOS中使用NSURLConnection实现http通信,NSURLConnection提供了异步和同步两种通信方式,同步请求会造成进程阻塞,通常我们使用异步的方式,不管同步还是异步,建立通信的基本步骤都是一样的: 1,创建NSURL 2,创建Request对象 3,创建NSURLConnection连接 第3步结束后就建立了一个http连接。
有时候我们看到的方法中有很多组的参数,可能会让大家觉得疑惑,其实是因为这个方法使用了柯里化。
在IOS中存在着许多队列,和我们数据结构中的队列一样,这里的队列概念也是先进先出的。而每一个方法(包括闭包)都被组织在这些不同的队列中,而每一个队列都有自己的线程去运行这些队列,这就造就了多线程环境。
在IOS中存在着许多队列,和我们数据结构中的队列一样,这里的队列概念也是先进先出的。而每一个方法(包括闭包)都被组织在这些不同的队列中,而每一个队列都有自己的线程去运行这些队列,这就造就了多线程环境。
在上一话中我们创建了一个通过URL读取图片的Demo,这个Demo是不能拖动和缩放的,现在给它增加选项让它可以手动切换URL,并把图片添加到ScrollView中。
上一话中我们介绍了滑动视图的用法,这一话来写一个滑动视图的Demo,Demo中还会涉及到多线程编程的知识。
作为移动设备,iphone的屏幕尺寸是非常有限的,超过屏幕尺寸的内容放到scrollview中,通过滑动来获取。
随着Xcode6.3正式版本的推出,Swift语言也正式进入1.2版本,那么1.2版本有什么新特性呢?来快速了解一下吧。
Swift已经推出了一段时间了,今天来总结一下Swift与Objective-c(以下简称OC)的语法有哪些不同。
上一话中我们实现了切换密码输入的功能,这一话我们来完成登录的功能。 我们创建一个Swift的类用来存储用户信息: import Foundation struct User { ...