我知道这可能与在Stackoverflow上提出的问题完全相反,但今天发生了一些非常奇怪的事情。 我正在试图向某人展示如何使用Instruments和NSZombies,所以我试图创建一个崩溃。访问已发布的NSString不会导致应用崩溃
我宣布一个的NSString,释放它,然后尝试访问它,但应用程序没有崩溃
NSString* test = [[NSString alloc] init];
[test release];
NSlog(@"%@", test);
我甚至试图释放它两次,但它仍然没有使应用程序崩溃,它只是打印null。
任何人都可以请解释我做错了什么或我的逻辑中的缺陷在哪里?
谢谢
编辑:我想这样的事情太多,仍然没有崩溃
NSString* test = [[NSString alloc] init];
test = @"something";
NSlog(@"%@", test);
[test release];
NSlog(@"%@", test);
我甚至增加了两个连续的版本,并测试=零;发布后,只是为了确保。
NSString可能被其他人保留(检查retainCount)。 – kennytm 2012-01-30 18:33:59
对不起,我试着添加一个新行,并且我错误地输入了错误,太快地发布了这个问题。如果你足够友善,你能否再次阅读我的问题?谢谢你,并为我的错误感到抱歉 – BBog 2012-01-30 18:36:07
关掉ARC,我敢打赌会导致你的崩溃。 – 2012-01-30 18:42:18