Собственно, мой вопрос здесь: эквиваленты null
и nil
или нет?
У меня есть пример, но я смущен, когда они равны, когда они не являются.
NSNull *nullValue = [NSNull null];
NSArray *arrayWithNull = [NSArray arrayWithObject:nullValue];
NSLog(@"arrayWithNull: %@", arrayWithNull);
id aValue = [arrayWithNull objectAtIndex:0];
if (aValue == nil) {
NSLog(@"equals nil");
} else if (aValue == [NSNull null]) {
NSLog(@"equals NSNull instance");
if ([aValue isEqual:nil]) {
NSLog(@"isEqual:nil");
}
}
Здесь в приведенном выше примере показано, что оба null
и nil
не равны, и он отображает "равно NSNull экземпляру"
NSString *str=NULL;
id str1=nil;
if(str1 == str)
{
printf("\n IS EQUAL........");
}
else
{
printf("\n NOT EQUAL........");
}
И во втором случае он показывает, что оба они равны, и он отображает "EQUAL".
Любая помощь будет высоко оценена.
Спасибо, Мониш.