如何检查对象是否为零

时间:2010-09-20 09:23:46

标签: objective-c cocoa-touch object null

我创建了一个具有多个NSStrings属性的类。如果我有这个类的对象,那么我怎么知道对象是否为nil(即所有NSString属性都是nil)。

我的班级看起来像这样

//  MyClass.h
#import <Foundation/Foundation.h>


@interface MyClass : NSObject <NSCoding> {
 NSString *string1;
 NSString *string2;

}
@property (nonatomic, retain) NSString *string1;
@property (nonatomic, retain) NSString *string2;

@end

我正在检查它并且它不起作用

if (SecondViewController.myObject==nil) {
 NSLog(@"the object is empty");
}

2 个答案:

答案 0 :(得分:7)

  

如果我有这个类的对象,那么我怎么知道对象是否为nil(即所有NSString属性都是nil)。

对象不是nil,因为它的所有属性都是nil。但是,如果您确实想知道对象的字符串属性是否都为nil,那么这将起到作用:

-(BOOL) bothStringsAreNil
{
    return [self string1] == nil && [self string2] == nil;
}

注意:我在营地里不喜欢将指针视为布尔值,即我更喜欢以上

-(BOOL) bothStringsAreNil
{
    return ![self string1]  && ![self string2];
}

功能相同。

答案 1 :(得分:3)

if (!obj)  
   // obj = nil

if (!obj.property)
   // property = nil

要检查所有属性是否为零,我认为最好在类中创建一个特殊方法。