0

我正在解析一个 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];
}

哪个更有效率?第二个选项似乎工作较少,但我担心自动引用计数。有第三种选择吗?

4

1 回答 1

0

您是否发现了可衡量的性能瓶颈?

如果没有,请不要担心。

如果您使用 ARC,编译器/运行时将尽可能优化自动释放的使用(包括工厂方法)。

于 2013-05-30T16:02:32.540 回答