NSString*str=@"FENG";NSString*str1=[[NSStringalloc]initWithFormat:@"fengxiao"];NSLog(@"str1rc:%lu",str1.retainCount);NSLog(@"strrc:%lu",str.retainCount);这里的引用计数输出的是一串很大的数字,如果用有符号格式输出,则结果是-1.ASStudent*stu=[[ASStudentalloc]initsetName:@"FENG"initsetAge:19];NSLog(@"%@:%d",stu.name,stu->age);stu.name=@"xiao";NSLog(@"%lu",stu.retainCount);如果是自定义的类型对象,那么引用计数输出是正常的1;请问:这个引用计数会针对系统类型有特殊的值么?
2 回答
忽然笑
TA贡献1806条经验 获得超5个赞
用字面量创建的变量,类似与常量,首先根据内存管理的黄金法则,你没有用alloc等显式的方法是创建不需要去释放它的引用计数,所以完全交由系统处理,所以查看这种情况下的变量的引用计数是没有意义的,此外,系统不会进行将计数从1减为0的操作,当计数为1时,再进行计数减的操作时,系统直接将该内存标记为可用,而不去进行减操作,主要也是为了节省操作次数
添加回答
举报
0/150
提交
取消