初始化NSSet需要什么?

时间:2012-05-05 05:36:43

标签: objective-c xcode4 initialization set null

他们用Xcode 4改变了一些东西,所以我想知道我是否需要通过

来初始化NSSet
NSMutableSet *variablesUsed = [NSMutableSet set];

或是

NSMutableSet *variablesUsed;

足够?或者第二个选项是否初始化为nil?这和空集一样吗?

感谢您的帮助!

2 个答案:

答案 0 :(得分:4)

如果您只使用NSMutableSet *variablesUsed;,那么您将获得一个设置为nil的指针,因此不会指向任何类型的集合。 nil表示它被设置为空,与空集不同。你将不会从nil中获得任何功能,因此你需要将variablesUsed设置为某个“真实”集合,以便充分利用它。

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

答案 1 :(得分:0)

后者在最新版本的运行时中将初始化为nil。在旧版本中,结果是未定义的,通常最佳做法是将其指定为nil或为其指定一个对象。

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