Ben*_*ter 1 memory-management objective-c
我无法理解为什么NSLog在代码运行时报告"dog".我理解保留计数和dealloc等我错过了什么简单的事情?
NSString *newFoo = @"dog";
[newFoo release];
NSLog(newFoo);
Run Code Online (Sandbox Code Playgroud)
[@"String Literal" release];
Run Code Online (Sandbox Code Playgroud)
是一个noop;
NSString *literal = @"String Literal";
[literal release];
Run Code Online (Sandbox Code Playgroud)
也是一个noop.这只是字符串文字的情况; 而且你永远不应该在其他地方期待这种行为.(这就是说;即使你告诉对象要释放,它也不会.)