2014年12月

初始化方法顺序

与 Objective-C 不同,Swift 的初始化方法需要保证类型的所有属性都被初始化。所以初始化方法的调用顺序就很有讲究。在某个类的子类中,初始化方法里语句的顺序并不是随意的,我们需要保证在当前子类实例的成员初始化完成后才能调用父类的初始化方法:class Cat { var name: String init() { name = "cat&...

memory   2014-12-31  暂无评论

@UIApplicationMain

因为 Cocoa 开发环境已经在新建一个项目时帮助我们进行很多配置,这导致了不少刚接触 iOS 的开发者都存在基础比较薄弱的问题,其中一个最显著的现象就是很多人无法说清一个 app 启动的流程。程序到底是怎么开始的,AppDelegate 到底是什么,xib 或者 storyboard 是怎么被加载到屏幕上的?这一系列的问题虽然在开发中我们不会每次都去关心和自己配置,但是如果能进行一些了解的...

memory   2014-12-24  暂无评论

可变参数函数

可变参数函数指的是可以接受任意多个参数的函数,我们最熟悉的可能就是 NSString 的 -stringWithFormat: 方法了。在 Objective-C 中,我们使用这个方法生成字符串的写法是这样的:NSString *name = @"Tom"; NSDate *date = [NSDate date]; NSString *string = [NSStrin...

memory   2014-12-17  暂无评论

CentOS 6.5 下安装 Redis 2.8.7

wget http://download.redis.io/redis-stable.tar.gztar xvzf redis-stable.tar.gzcd redis-stablemake 前面3步应该没有问题,主要的问题是执行make的时候,出现了异常。异常一:make[2]: cc: Command not found异常原因:没有安装gcc解决方案:yum install...

memory   2014-12-16  暂无评论

编译标记

在 Objective-C 中,我们经常在代码中插入 #param 符号来标记代码的区间,这样在 Xcode 的导航栏中我们就可以看到组织分块后的方法列表。这在单个文件方法较多的时候进行快速定位非常有用。在 Swift 中也有类似的方式,我们可以在代码合适的地方添加 // MARK: 这样的标记 (注意大写),并在后面接上名称,Xcode 将在代码中寻找这样的注释,然后以粗体标签的形式将名称...

memory   2014-12-10  暂无评论

条件编译

在 C 系语言中,可以使用 #if 或者 #ifdef 之类的编译条件分支来控制哪些代码需要编译,而哪些代码不需要。Swift 中没有宏定义的概念,因此我们不能使用 #ifdef 的方法来检查某个符号是否经过宏定义。但是为了控制编译流程和内容,Swift 还是为我们提供了几种简单的机制来根据需求定制编译内容的。首先是 #if 这一套编译标记还是存在的,使用的语法也和原来没有区别:#if &l...

memory   2014-12-03  暂无评论