在iPhone上使用obj-c时,是否会在释放所有内容时自动释放?在iPhone上使用obj-c时,是否会在释放所有内容的同时自动释放?
例如,此代码:
NSString *recipe = [[NSString alloc] initWithUTF8String:sqlite3_column_text(dbps,0)];
[arr addObject:recipe];
[recipe release];
可通过自动释放配方的NSString当我创建它缩短为两行:
NSString *recipe = [[[NSString alloc] initWithUTF8String:sqlite3_column_text(dbps,0)] autorelease];
[arr addObject:recipe];
有什么缺点呢?我觉得它更适合我的编码风格。谢谢大家。
+1用于提及返回自动释放对象的现有类方法。请参阅Brent Simmon关于此主题的博客文章。 http://inessential.com/2010/06/28/how_i_manage_memory – falconcreek 2010-07-06 13:36:30
这种方法可能更容易阅读和输入,但最终你仍然有一个自动释放的对象,直到当前的自动释放池完成它的工作才会被释放。 – 2010-07-06 15:44:57