San*_*ndy -1 nsstring retaincount
请不要标记重复: - 我创建了几行
NSString *str = [[NSString alloc] init];
str = @"Test";
NSLog(@"%d",[str retainCount]);
Run Code Online (Sandbox Code Playgroud)
和输出是-1.请解释.
这是我指出的问题的一个骗局.它是-1,因为您将UINT_MAX打印为有符号整数.RC是-1,因为它是编译器生成的单例字符串,实际上是永远不会分配或取消分配的.
这种模式:
NSString *str = [[NSString alloc] init];
str = @"Kashyap";
Run Code Online (Sandbox Code Playgroud)
没有意义; 你正在分配一个字符串实例,str在第一行中为它指定一个引用,然后立即覆盖第二行中的引用(如果你没有使用ARC,则泄漏第一个字符串).
如果有一个教程或书籍提倡反模式,请指出.