他们用Xcode 4改变了一些东西,所以我想知道我是否需要通过
来初始化NSSetNSMutableSet *variablesUsed = [NSMutableSet set];
或是
NSMutableSet *variablesUsed;
足够?或者第二个选项是否初始化为nil?这和空集一样吗?
感谢您的帮助!
答案 0 :(得分:4)
如果您只使用NSMutableSet *variablesUsed;
,那么您将获得一个设置为nil
的指针,因此不会指向任何类型的集合。 nil
表示它被设置为空,与空集不同。你将不会从nil
中获得任何功能,因此你需要将variablesUsed设置为某个“真实”集合,以便充分利用它。
当您使用NSMutableSet *variablesUsed = [NSMutableSet set];
或NSMutableSet *variablesUsed = [[NSMutableSet alloc] init];
时,您将指针指向一个全新的空集,该集已初始化并可以使用。
答案 1 :(得分:0)
后者在最新版本的运行时中将初始化为nil。在旧版本中,结果是未定义的,通常最佳做法是将其指定为nil或为其指定一个对象。
在您的情况下,您需要在开始使用之前对其进行初始化。