2

他们用 Xcode 4 改变了一些东西,所以我想知道我是否需要初始化一个 NSSet

NSMutableSet *variablesUsed = [NSMutableSet set];

或者是

NSMutableSet *variablesUsed;

充足的?还是第二个选项初始化为零?这和空集一样吗?

谢谢你的帮助!

4

2 回答 2

6

如果您只是使用NSMutableSet *variablesUsed;,那么您将获得一个设置为的指针,nil因此不会指向任何类型的集合。 nil意味着它被设置为空,并且与空集不同。您将无法获得任何功能,nil因此您需要将 variablesUsed 设置为一些“真实”集合,以便充分利用它。

当您使用NSMutableSet *variablesUsed = [NSMutableSet set];NSMutableSet *variablesUsed = [[NSMutableSet alloc] init];将指针设置为一个全新的空集时,该集已初始化并可以使用。

于 2012-05-05T05:50:28.577 回答
0

后者,在最新版本的运行时,将被初始化为 nil。在旧版本中,结果是未定义的,通常最好将其分配给 nil 或给它一个指向的对象。

在您的情况下,您需要在开始使用它之前对其进行初始化。

于 2012-05-05T05:43:12.600 回答