在ARC中,使用retainCount会报错,此方法已经被正式废弃.即使在MRC中,也不要使用retainCount.
retain只能返回某个时间点上的引用计数,但是我们并不知道该对象是否已经添加到自动释放池中,使用retaincount 反而会误导开发者错误判断对象的引用计数值.
系统会尽可能的将NSString实现成单例对象,如果字符串是个编译期常量,那么编译器会将NSString所表示的数据放到应用程序的二进制文件里.运行时就可以直接使用,无需创建NSString对象.
NSNumber也类似.它使用"标签指针"把与数值有关的全部数据放入指针值里,无需创建NSNumber对象,这种优化只会在某些特殊场合使用.
如上文所提到的单例数据对象,其保留计数绝对不变,该对象的保留和释放操作都是空操作.