Swift开发
文章平均质量分 71
Bannings
对代码有洁癖,致力于写出优雅的代码,在多个公司负责过 iOS 架构,熟悉设计模式,热衷产品设计与交互,业余时间担任 CSDN iOS 版块版主。
我喜欢现代化的生活,日新月异,科技发达,也带着我快速地成长进步。同时我也喜欢追求细致,品味生活,把学到的语言都能写的更优雅,细腻,像诗一样。用动态的心去学习,用静态的心去写。路漫漫其修远兮,吾将上下而求索。
展开
-
Swift 元组(Tuples)介绍
元组是Objective-C中没有的数据类型,与数组类似,都是表示一组数据的集合,但与数组不同,它的特点是:元组的长度任意元组中的数据可以是不同的数据类型原创 2014-08-14 23:38:26 · 19409 阅读 · 0 评论 -
iOS8 用UITableViewRowAction实现Cell自定义滑动操作
在iOS 8以前,如果想自定义一个UITableViewCell的滑动操作是一件比较麻烦的事情,系统只支持删除,如果我们想加上一个类似于“置顶”的操作需要处理不少逻辑,而进入iOS 8以后,系统提供了UITableViewRowAction以及新的delegate方法,使得自定义一些操作变得非常容易,如果想加上一个置顶,只需要这样原创 2015-01-25 21:48:44 · 18089 阅读 · 4 评论 -
iOS8 Core Image In Swift:更复杂的滤镜
Core Image是一个很强大的框架。它可以让你简单地应用各种滤镜来处理图像,比如修改鲜艳程度, 色泽, 或者曝光。 它利用GPU(或者CPU)来非常快速、甚至实时地处理图像数据和视频的帧。并且隐藏了底层图形处理的所有细节,通过提供的API就能简单的使用了,无须关心OpenGL或者OpenGL ES是如何充分利用GPU的能力的,也不需要你知道GCD在其中发挥了怎样的作用,Core Image处理了全部的细节。本文将会提到更复杂的滤镜以及子类化CIFilter的使用。原创 2014-09-12 00:52:19 · 27400 阅读 · 13 评论 -
has been modified since the precompiled header问题的几种解决方案
有时候不小心就报了这个错误,在以下步骤中,只有没解决问题的情况下,才继续往下操作:原创 2014-09-28 18:05:39 · 14247 阅读 · 2 评论 -
iPhone 6 / 6 Plus 设计·适配方案
from:http://www.xiaoketang.net/iphone-6-6-plus-设计·适配方案.htmltreelessing2014.10.29 关于iPhone6/6+适配问题一直有争议,今天小编专门为大家整理了相关的有效方案,希望对大伙儿有帮助! 移动app开发中多种设备尺寸适配问题,过去只属于Android阵营的头疼事儿,只是很多设计师选择性地忽视android适配问题,只出转载 2014-12-30 15:25:41 · 11207 阅读 · 0 评论 -
让Xcode自动更新Build版本
我们每天都要打包给测试,每天都要改Build比较麻烦,幸运的是可以通过Shell脚本来省略这个过程。在Xcode工程里选择对应的Target,在Build Phases里点击“New Run Script Phases”原创 2015-02-03 17:36:08 · 13743 阅读 · 1 评论 -
去掉UIWebView底部的黑条
UIWebView底部的黑条很难看,特别是在底部还有透明控件的时候,隐藏的做法其实很简单,只需要将opaque设为NO,背景色设为clearColor即可。原创 2015-01-05 17:12:02 · 22785 阅读 · 0 评论 -
Swift Nullability and Objective-C
通过Bridging-Header文件,Swift可以与Objective-C无缝调用,但是Swift与Objective-C有一个很大的不同点:Swift支持Optional类型。比如NSView和NSView?,在Objective-C里对此只有一种表示,即NSView *,既可以用来表示该View为nil、也能表示为非nil,此时Swift编译器是无法确定这个NSView是不是Optional类型的原创 2015-03-18 18:59:51 · 8942 阅读 · 4 评论 -
iOS id类型的方法调用
用id类型调用了count方法,此时编译器会遍历所有的可见头的count方法,编译器当然会找到多个定义,因为count方法在NSArray,NSSet等等这些类上也有实现,而且我的TestCounter的count方法返回的是一个TestCounter对象,这和NSArray,NSSet等的count方法返回NSUInteger类型不一样,所以编译器会给你一个异常。原创 2015-03-08 09:43:01 · 20559 阅读 · 0 评论 -
Swift Core Data 图片存储与读取Demo
实体的模型定义: 实体的class定义:@objc(ImageEntity)class ImageEntity: NSManagedObject { @NSManaged var imageData: NSData}存储:@IBAction func saveImageToCoreData() { let delegate = UIApplication.sharedAppli原创 2015-03-20 23:08:37 · 15258 阅读 · 0 评论 -
Swift 可选值(Optional Values)介绍
Optional也是Objective-C没有的数据类型,是苹果引入到Swift语言中的全新类型,它的特点就和它的名字一样:可以有值,也可以没有值,当它没有值时,就是nil。此外,Swift的nil也和Objective-C有些不一样,在Objective-C中,只有对象才能为nil,而在Swift里,当基础类型(整形、浮点、布尔等)没有值时,也是nil,而不是一个初始值,没有初始值的值,是不能使用的,这就产生了Optional类型。原创 2014-08-17 19:02:15 · 48903 阅读 · 27 评论 -
iOS Core Data的returnsObjectsAsFaults属性
这个属性是用来做优化的,但是有时候反而会降低性能,我跟你打个简单的比方,假如你有一个Department对象,它和Employee对象是一对多的关系(比如一个部门有100个员工),当你加载Department的时候,它包含的所有Employee也被加载了,此时如果returnsObjectsAsFaults为YES,则员工们不会被添加到内存中。原创 2015-03-08 10:15:29 · 7233 阅读 · 0 评论 -
Swift 柯里化(Currying)
在计算机科学中,柯里化(英语:Currying),又譯為卡瑞化或加里化,是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。这个技术由 Christopher Strachey 以逻辑学家哈斯凱爾·加里命名的,尽管它是 Moses Schönfinkel 和 戈特洛布·弗雷格 发明的。原创 2014-08-26 20:06:29 · 7689 阅读 · 0 评论 -
如何设计一个 iOS 控件?(iOS 控件完全解析)
> 代码的等级:可编译、可运行、可测试、可读、可维护、可复用---# 前言一个控件从外在特征来说,主要是封装这几点:> * 交互方式* 显示样式* 数据使用对外在特征的封装,能让我们在多种环境下达到 PM 对产品的要求,并且提到代码复用率,使维护工作保持在一个相对较小的范围内;而一个好的控件除了有对外一致的体验之外,还有其内在特征:> * 灵活性* 低耦合* 易拓展* 易维护原创 2015-05-25 11:35:22 · 41542 阅读 · 30 评论 -
DKImagePickerController
一个Swift实现的相片多选控件,已选择的相片会在底部预览。原创 2014-10-29 21:17:06 · 6513 阅读 · 4 评论 -
Swift 全功能的绘图板开发
转载请注明出处:http://blog.csdn.net/zhangao0086/article/details/43836789。 要做一个全功能的绘图板,至少要支持以下这些功能:支持铅笔绘图(画点)支持画直线支持一些简单的图形(矩形、圆形等)做一个真正的橡皮擦能设置画笔的粗细能设置画笔的颜色和填充颜色能设置背景色或者背景图…我们先做一些基础性的工作,比如创建工程。 工程搭建原创 2015-03-29 21:20:44 · 23254 阅读 · 25 评论 -
iOS 使用Quartz 2D画虚线
画虚线需要用到函数:CGContextSetLineDash此函数需要四个参数:context – 这个不用多说phase - 稍后再说lengths – 指明虚线是如何交替绘制,具体看例子count – lengths数组的长度CGContextRef context =UIGraphicsGetCurrentContext();CGContextB原创 2012-02-05 16:29:56 · 39969 阅读 · 15 评论 -
iOS 自定义页面的切换动画与交互动画 By Swift
在iOS7之前,开发者为了寻求自定义Navigation Controller的Push/Pop动画,只能受限于子类化一个UINavigationController,或是用自定义的动画去覆盖它。但是随着iOS7的到来,Apple针对开发者推出了新的工具,以更灵活地方式管理UIViewController切换。原创 2014-08-11 17:30:48 · 44898 阅读 · 16 评论 -
Swift 值类型和引用类型
Swift中的类型分为两类:一,值类型(value types),每个值类型的实例都拥有各自唯一的数据,通常它们是结构体,枚举或元组;二,引用类型(reference types),引用类型的实例共享它们的数据,通常是一个类。在这篇文章中我们将会探索值类型和引用类型的价值,以及如何在它们二者间抉择。翻译 2014-08-20 16:58:08 · 11714 阅读 · 0 评论 -
Swift Beta6 编译之前版本出错
安装Xcode6 Beta6之后,编译之前的项目可能会出问题,如下原创 2014-08-21 13:21:41 · 5733 阅读 · 0 评论 -
如何避免在Block里用self造成循环引用
一般来说我们总会在设置Block之后,在合适的时间回调Block,而不希望回调Block的时候Block已经被释放了,所以我们需要对Block进行copy,copy到堆中,以便后用。当一个Block被Copy的时候,如果你在Block里进行了一些调用,那么将会有一个强引用指向这些调用方法的调用者,有两个规则原创 2014-07-29 18:59:28 · 59648 阅读 · 0 评论 -
Swift Switch介绍
Switch作为选择结构中必不可少的语句也被加入到了Swift中,只要有过编程经验的人对Switch语句都不会感到陌生,但苹果对Switch进行了大大的增强,使其拥有其他语言中没有的特性。原创 2014-08-18 23:36:31 · 37926 阅读 · 0 评论 -
CSDN博客导出工具 Mac By Swift
写这个的目的主要是用于了解Swift语言本身,以及如何与Objc和第三方框架交互需要先使用CSDN账号来登录,可以导出所有的博客文章,添加YAML头信息的时候,会在头信息里面包含文章对应的标签和分类,以及对应的文章类型(原创、转载、翻译)开发环境OS X 10.10,Xcode6 Beta4,由于Beta4较之前版本对Swift更新较大,之前版本编译出报错使用的第三原创 2014-07-23 15:03:28 · 10051 阅读 · 2 评论 -
raywenderlich.com的Swift编程风格指南
翻译自:https://github.com/raywenderlich/swift-style-guide这个风格指南可能和你从其他地方看到的不同,我们的焦点主要集中在互联网和文章上的可读性,创建这个编程风格指南是为了保持我们的书籍、教程和入门工具包中代码的优雅与一致性------尽管我们有和许多不同的作者合作。翻译 2014-08-06 22:28:53 · 6384 阅读 · 0 评论 -
iOS GCD使用指南
Grand Central Dispatch(GCD)是异步执行任务的技术之一。一般将应用程序中记述的线程管理用的代码在系统级中实现。开发者只需要定义想执行的任务并追加到适当的Dispatch Queue中,GCD就能生成必要的线程并计划执行任务。由于线程管理是作为系统的一部分来实现的,因此可统一管理,也可执行任务,这样就比以前的线程更有效率。原创 2014-08-29 15:09:33 · 43269 阅读 · 8 评论 -
iOS 为移动动画中的View添加touch事件
对Core Animation来说,不管是显式动画还是隐式动画,对其设置frame都是立即设置的,比如说给一个UIView做移动动画,虽然看起来frame在持续改变,但其时它的frame已经是最终值了,这种情况下,哪怕这个UIView是UIButton的实例,其触发touch事件的范围还是最终frame的地方。原创 2014-08-03 14:22:27 · 18431 阅读 · 0 评论 -
iOS 实现脉冲雷达以及动态增减元素 By Swift
Swift经过Xcode6 Beta4一版更新后,基本上已经可以作为生产工具了,虽然有一些地方和ObjC比起来要“落后”一些,但也无伤大雅。这里就用Xcode6 Beta4+iOS SDK 8.0开发,如果用ObjC的话,只需把某些语法和调用方式替换一下就可以了。原创 2014-07-28 01:31:12 · 16663 阅读 · 7 评论 -
iOS8 Core Image In Swift:自动改善图像以及内置滤镜的使用
Core Image是一个很强大的框架。它可以让你简单地应用各种滤镜来处理图像,比如修改鲜艳程度, 色泽, 或者曝光。 它利用GPU(或者CPU)来非常快速、甚至实时地处理图像数据和视频的帧。并且隐藏了底层图形处理的所有细节,通过提供的API就能简单的使用了,无须关心OpenGL或者OpenGL ES是如何充分利用GPU的能力的,也不需要你知道GCD在其中发挥了怎样的作用,Core Image处理了全部的细节。本文将会提到自动改善图像以及内置滤镜的使用。原创 2014-09-06 23:33:29 · 24891 阅读 · 3 评论 -
iOS8 Core Image In Swift:视频实时滤镜
Core Image是一个很强大的框架。它可以让你简单地应用各种滤镜来处理图像,比如修改鲜艳程度, 色泽, 或者曝光。 它利用GPU(或者CPU)来非常快速、甚至实时地处理图像数据和视频的帧。并且隐藏了底层图形处理的所有细节,通过提供的API就能简单的使用了,无须关心OpenGL或者OpenGL ES是如何充分利用GPU的能力的,也不需要你知道GCD在其中发挥了怎样的作用,Core Image处理了全部的细节。本文将会使用AVFoundation框架做些全局或局部的实时滤镜效果,并支持单张照片的拍摄或录制视原创 2014-09-28 17:10:36 · 31859 阅读 · 25 评论 -
iOS8 Core Image In Swift:人脸检测以及马赛克
Core Image是一个很强大的框架。它可以让你简单地应用各种滤镜来处理图像,比如修改鲜艳程度, 色泽, 或者曝光。 它利用GPU(或者CPU)来非常快速、甚至实时地处理图像数据和视频的帧。并且隐藏了底层图形处理的所有细节,通过提供的API就能简单的使用了,无须关心OpenGL或者OpenGL ES是如何充分利用GPU的能力的,也不需要你知道GCD在其中发挥了怎样的作用,Core Image处理了全部的细节。本文将会提到人脸检测以及简单的马赛克处理。原创 2014-09-20 09:43:49 · 23906 阅读 · 13 评论 -
Swift 自定义Subscript
Swift可以方便给自定义对象加下标访问:原创 2014-11-11 14:24:17 · 5254 阅读 · 0 评论 -
Swift 添加方法描述(文档注释)
在Swift里为一个方法添加文档描述很简单,只需要用///就可以了,如原创 2014-10-08 22:12:24 · 13122 阅读 · 0 评论 -
使用CocoaPods过程中的几个问题
当把CocoaPods生成的workspace移动到上层目录时,需要改下Pods.xcconfig和工程里的一些设置,就通常没什么难度。当遇到这个问题时原创 2014-10-01 00:16:48 · 68295 阅读 · 2 评论 -
Swift 绘图板功能完善以及终极优化
转载请注明出处:http://blog.csdn.net/zhangao0086/article/details/45289475。 前文总结接着这篇:Swift 全功能的绘图板开发,虽然在上一篇中我们已经完成了这些功能:支持铅笔绘图(画点)支持画直线支持一些简单的图形(矩形、圆形等)做一个真正的橡皮擦能设置画笔的粗细能设置画笔的颜色能设置背景色或者背景图但是还有一个非常重要的功能没原创 2015-04-30 23:45:13 · 10256 阅读 · 5 评论