【问题标题】:NSMutableArray arrayWithArray: vs. initWithArray:NSMutableArray arrayWithArray: 与 initWithArray:
【发布时间】:2011-04-14 13:27:39
【问题描述】:

这些都在我的应用程序中工作,没有任何明显的区别:

1)

theArray = [[NSMutableArray alloc] initWithArray:[NSKeyedUnarchiver unarchiveObjectWithData:theData]];

2)

theArray = [NSMutableArray arrayWithArray:[NSKeyedUnarchiver unarchiveObjectWithData:theData]];
[theArray retain];

但是,它们真的是等价的吗? (1) 有一个 alloc 语句,而 (2) 没有。一个比另一个更可取吗?

【问题讨论】:

    标签: objective-c cocoa-touch nsmutablearray


    【解决方案1】:

    效果是一样的。但是(2)效率较低(一种方便的方法 = alloc + init + autorelease)。

    1. 分配→初始化
    2. 分配→初始化→自动释放→保留

    首选方法是不复制数组。

    theArray = [[NSKeyedUnarchiver unarchiveObjectWithData:theData] retain];
    

    顺便说一句,我注意到您一直在问很多关于 iPhone OS 开发的基本问题。 Please go through the tutorials on these先。

    【讨论】:

    • Kenny,如果 StackOverflow 是网络上最好的资源,即使是“初学者”问题,那不是很酷吗?在许多方面,它是;但是,将这些类型的问题重定向到您最喜欢的教程并不符合这一愿景。这取决于你。
    • 同意。我是一位经验丰富的程序员,拥有不错的应用程序,但我仍然带着这样的问题来到这里。我最不喜欢在这里找到的答案是“我们不是来教你程序的”..真的吗?因为那你为什么在这里?因为我来这里是为了学习并帮助人们学习。很多时候,我可以在这里快速获得答案,而不是等待从制作 ios 项目开始的 30 到 60 分钟教程。
    猜你喜欢
    • 2013-12-04
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多