NSString是一个特殊的类,你可以看到打印出来的class结果显示并不是NSString。NSString的初始化方法会通过抽象工厂模式来返回最合适的类,有点类似NSNumber。
对NSString来说,alloc返回的是一个用来占位的子类NSPlaceholderString,这个子类并没有实现NSString抽象类的各种方法,例如NSString *string = [NSString alloc];之后直接调用[string length];会出现崩溃。
string和newString只进行了初始化,结果都是空字符串@"",这个结果在编译期就已经确定了,从而编译器做了优化让他们指向了相同的地址。
OC源码 —— alloc, init, new和dealloc上一篇最后讲release的时候说到,在release的最后,当引用计数减为0的时候就进入了dealloc的过程。这一篇就来讲讲dealloc和相关的一些方法。先从deall...