摘要: iOS开发时会考虑两种SDK版本兼容性:一个是运行时SDK版本的兼容,即已构建/已发布的APP能在不同系统版本的用户手机上正常运行;一个是编译时SDK版本的兼容,即使用不同版本的SDK编译项目都能正常通过。后者是开发者经常会疏忽的,因为我们通常统一使用最新的SDK来编译项目,很少会再使用老的SDK编 阅读全文
posted @ 2017-02-14 10:25 郭晓倩 阅读(716) 评论(0) 推荐(0) 编辑
摘要: 在view上绘制一个图形的方式有很多种,表现形式可能不一样,但其实质步骤都是一样的: 1)获取上下文 2)绘制路径 3)添加路径到上下文 4)修改图形状态参数 5)渲染上下文 下面我们以画一个圆形来演示其实现步骤: 1)使用CGContextRef创建路径 1 2 3 4 5 6 7 8 9 //获 阅读全文
posted @ 2016-05-18 10:54 郭晓倩 阅读(692) 评论(0) 推荐(0) 编辑
摘要: - (IBAction)getAllContactFromSystem { ABAddressBookRef ab = ABAddressBookCreateWithOptions(NULL, NULL); ABAddressBookRequestAccessWithCompletion(ab, ^ 阅读全文
posted @ 2016-03-24 11:20 郭晓倩 阅读(466) 评论(0) 推荐(0) 编辑
摘要: dyld: Library not loaded: @rpath/libswiftCore.dylib Referenced from: /private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/AppName.app/Ap 阅读全文
posted @ 2016-02-23 15:01 郭晓倩 阅读(935) 评论(0) 推荐(0) 编辑
摘要: 1.Swift 中有4种处理错误的方式。你可以把函数抛出的错误传递给调用此函数的代码、用do-catch语句处理错误、将错误作为可选类型处理、或者断言此错误根本不会发生。2.wift 中的错误处理并不涉及解除调用栈,这是一个计算代价高昂的过程。就此而言,throw语句的性能特性是可以和return语... 阅读全文
posted @ 2016-01-23 20:41 郭晓倩 阅读(146) 评论(0) 推荐(0) 编辑
摘要: Optional Chaining自判断链接(Optional Chaining)是一种可以请求和调用属性、方法及子脚本的过程,它的自判断性体现于请求或调用的目标当前可能为空(nil)。如果自判断的目标有值,那么调用就会成功;相反,如果选择的目标为空(nil),则这种调用将返回空(nil)。多次请求... 阅读全文
posted @ 2016-01-17 21:37 郭晓倩 阅读(635) 评论(0) 推荐(0) 编辑
摘要: 在Swift语言中,访问修饰符有三种,分别为private,internal和public。同时,Swift对于访问权限的控制,不是基于类的,而是基于文件的。其区别如下:1,privateprivate访问级别所修饰的属性或者方法只能在当前的Swift源文件里可以访问。2,internal(默认访问... 阅读全文
posted @ 2016-01-17 21:27 郭晓倩 阅读(1209) 评论(0) 推荐(0) 编辑
摘要: 1.用类型检查操作符(is)来检查一个实例是否属于特定子类型。若实例属于那个子类型,类型检查操作符返回true,否则返回false。2.某类型的一个常量或变量可能在幕后实际上属于一个子类。当确定是这种情况时,你可以尝试向下转到它的子类型,用类型转换操作符(as?或as!)。因为向下转型可能会失败,类... 阅读全文
posted @ 2016-01-10 23:04 郭晓倩 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 1.你可以将一个继承来的只读属性重写为一个读写属性,只需要在重写版本的属性里提供 getter 和 setter 即可。但是,你不可以将一个继承来的读写属性重写为一个只读属性。2.你可以通过把方法,属性或下标脚本标记为final来防止它们被重写,只需要在声明关键字前加上final修饰符即可(例如:f... 阅读全文
posted @ 2016-01-10 22:39 郭晓倩 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 1.延迟存储属性是指当第一次被调用的时候才会计算其初始值的属性。在属性声明前使用lazy来标示一个延迟存储属性。必须将延迟存储属性声明成变量(使用var关键字),因为属性的初始值可能在实例构造完成之后才会得到。而常量属性在构造过程完成之前必须要有初始值,因此无法声明成延迟属性。如果一个被标记为laz... 阅读全文
posted @ 2016-01-10 16:44 郭晓倩 阅读(254) 评论(0) 推荐(0) 编辑