我正在解析一个 xml 提要(使用 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];
}
哪个更有效率?第二个选项似乎工作较少,但我担心自动引用计数。有第三种选择吗?