Как проверить, является ли объект нулевым - PullRequest
5 голосов
/ 20 сентября 2010

Я создал класс, который имеет несколько NSStrings в качестве свойств.Если у меня есть объект этого класса, то как я могу узнать, является ли объект нулевым (т. Е. Все свойства NSString равны нулю).

Мой класс выглядит следующим образом

//  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

IЯ проверяю это так, и это не работает

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

Ответы [ 2 ]

7 голосов
/ 20 сентября 2010

Если у меня есть объект этого класса, то как мне узнать, равен ли объект нулю (т. Е. Все свойства NSString равны нулю).

Объект не равен нулю только потому, что все его свойства равны нулю. Однако, если вы хотите знать, равны ли оба свойства строки вашего объекта nil, это поможет:

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

Примечание: я нахожусь в лагере, который не любит рассматривать указатели как логические значения, т.е. я предпочитаю вышеупомянутое значение

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

, который функционально идентичен.

3 голосов
/ 20 сентября 2010
if (!obj)  
   // obj = nil

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

Чтобы проверить, все ли свойства равны нулю, я думаю, для этого лучше создать специальный метод в вашем классе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...