随着iOS8和OSX10.10的发布,Core Data也迎来了更新。这次的更新可谓是重量级的,它使得程序员能够更加直接高效的操作数据库,在处理大量数据时速度明显提升(这在以前不知有多少程序员因为Core Data批量更新数据效率之低而不得不放弃使用它)。Batch Updates可用于批量快速更新数据,Asynchronous Fetching可用于异步抓取海量数据,并可以通过NSProgress实现进度跟踪和取消。

Read More

位运算符(Bitwise Operators),在各种语言中都存在,虽然用的有些少,但是在诸如类别判断,类型检测等方案中经常用位运算来实现。很多枚举类型的成员都是将0x1左移位来赋值,而不是从0递增,这其中就蕴含着位运算。而数值运算中的溢出也是一个不常遇到但又值得注意的地方,虽然很少有人用Int8来存储大数,但了解下Swift处理溢出的这一特性也是很有用的。

Read More

在Swift发布后,我尝试用Swift和Core Data做了一个小Demo,名字叫“HardChoice”。它用于帮助人们随机生成一个问题的结果,当然结果是预设好的,并可以加入权值。本文将通过这个Demo来进一步阐述Core Data的知识。

本文包含以下内容:

  • 建立数据模型
  • Swift与Objective-C桥接
  • NSFetchedResultsController
  • UITextField键盘响应
  • 随机选择算法

Read More

本文参考自Swift文档,主要包括以下内容:

  • 简介
  • 自定义构造过程
  • 默认构造器
  • 值类型的构造器代理
  • 类的继承和构造过程
  • 可失败构造器
  • 必需构造器
  • 通过闭包和函数来设置属性的默认值

(2014-8-8更新至beta5语法)
(2014-10-24更新至Swift1.1)

Read More

  1. 右键单击程序,选择“显示包内容”
  2. 找到“info.plist”文件并打开
  3. 如果用Xcode打开:添加一个新的键值对,类型为Boolean,Key为“NSHighResolutionCapable”,Value选择“YES”;如果用其他软件打开,直接在plist节点中的dict中添加一个键值对就可以:NSHighResolutionCapable
  4. 为了使系统更新,复制一份“软件.app”,改成别的名字如“软件1.app”,删除原来的“软件.app”,再把“软件1.app”重命名为“软件.app”

可选类型(Optionals)在Swift中用于处理值可能缺失的情况,也就是说可能存在没有值的情况。C 和 Objective-C 中并没有可选类型这个概念。但在Objective-C中,一个方法的返回值可以是一个对象或nil值(nil表示缺少一个合法对象),而对象只是针对类而言,结构体、基本C类型和枚举并不适用nil来表示值的缺失,对于这些类型,Objective-C 方法一般会返回一个特殊值(比如NSNotFound)来暗示值缺失。这种表示“值缺失”方法不统一的局面使得调用方法的程序员蛋疼了-需要针对不同情况进行处理-但随着可选类型的诞生,这种情形在Swift中得到解决,Optionals可以表示任意类型值的缺失。(2014-8-8更新至beta5语法)

Read More

Objective-C中的ARC被Swift很好的继承下来了,本文参考自Swift文档网上的翻译,主要重点记录下Swift中的ARC与OC对比需要注意的地方。(2014-8-8更新至beta5语法)

Read More