检查对象是否为零时出了什么问题

时间:2012-12-16 23:14:46

标签: objective-c object init null

我已阅读过apple http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/ProgrammingWithObjectiveC/WorkingwithObjects/WorkingwithObjects.html

的文档

它说我们可以检查对象是否为空...

 XYZPerson *somePerson;
    // somePerson is automatically set to nil
 if (somePerson != nil) {
        // somePerson points to an object
    }

我很可能做错了什么,但需要你的帮助来找到它是什么。 我有一个C2类,我创建C2对象但没有初始化,当检查下面的代码时,app写入NOTNİL输出。我做错了什么。

感谢您的帮助。

C2 * o3;

    if (o3 != nil) {
        NSLog(@"NOT NİLLLL");
    }else{
        NSLog(@"NOT");
    }

1 个答案:

答案 0 :(得分:5)

与初始化时归零的类的成员不同,本地变量不会由ARC前编译器自动初始化。如果您希望本地o3nil,则需要自行初始化:

C2 * o3 = nil;

除非程序明确指示,否则不初始化本地的行为来自C:默认情况下,本地人也没有初始化。