我正在解析xml feed(使用NSXML解析器),我需要创建一堆相同的对象foo,然后将这些对象添加到NSMutableArray。我尝试这个时,我的问题涉及内存管理。
我认为,我的两个选择是: 1)创建一个工厂方法,根据需要创建对象。这是我的工厂方法,我在xml解析器中添加了一个方法。
+ (id)create_foo
{
return [[foo alloc] init];
}
2)我有自动引用计数。所以我想我可以在xml解析器中创建一个单独的foo对象作为实例变量,并且当我需要创建一个新的foo对象时,让自动内存管理负责释放对象。所以在NSXML解析器的didStartelement方法中
if ([elementName isEqualToString:@"new_foo"])
{
current_foo = [foo alloc];
}
哪个效率更高?第二种选择似乎不那么重要,但我担心自动引用计数。还有第三种选择吗?
答案 0 :(得分:0)
您是否确定了可识别的性能瓶颈?
如果没有,请不要担心。
如果使用ARC,编译器/运行时将尽可能优化自动释放的使用(包括工厂方法)。