Objective-C:测试未分配的(未定义的)变量?

时间:2010-01-06 05:54:32

标签: objective-c cocoa xcode variables

如果我创建了这两个变量:

NSDecimalNumber *myNum;
NSString *myString;

我以后如何测试是否已将对象分配给它们?

由于

2 个答案:

答案 0 :(得分:4)

如果他们不在课堂上,如果你想使用它,你必须指定nil作为默认值。在课堂上,这将是自动的。

要测试他们是否有与之关联的对象,请将其与nil进行比较:if (myNum != nil) // myNum is an object

另请注意,当对象被取消分配时,对它的引用仍然存在,因此当您释放这些对象的所有权时,最好将它们设置回nilmyNum = nil;

答案 1 :(得分:1)

将其设为nil以开头:

NSDecimalNumber *myNum = nil;

然后使用:

if (myNum == nil) { ... you haven't set it yet ... }

nil是做空对象的ObjC方法(那些不引用实际对象的方法)。