为什么这个空检查失败了?
Why does this null check fail?
我正在使用这个简单的代码来检查 NSString 对象是否为 null,但由于某种原因它失败了
这是我的简单检查
NSString *imageUrl = [dict objectForKey:@"imageUrl"];
NSLog(@"Jonge: %@", imageUrl);
if(![imageUrl isEqual:[NSNull null]]) {
NSLog(@"In the loop");
NSURL *url = [[NSURL alloc]initWithString:imageUrl];
NSData *data =[NSData dataWithContentsOfURL:url];
cell.imageView.image = [UIImage imageWithData:data];
}
调试清楚地显示对象为空,如下所示
2017-10-23 11:48:22.711228+0800 NWMobileTill[46614:7498779] Jonge: (null)
但我仍然陷入如下循环
2017-10-23 11:48:22.711367+0800 NWMobileTill[46614:7498779] In the loop
为什么我的空检查不起作用?
(null)
表示 nil
,而不是 [NSNull null]
,因此检查 imageUrl != NSNull
成功。
你必须写
if (imageUrl) {
与
相同
if (imageUrl != nil) {
您还可以检查字符串是否为空。
if(![imageUrl isEqualToString:@""])
或者
if(![imageUrl isKindOfClass:[NSNull class]])
nil
不代表任何东西,或者在技术术语中,我们可以说 '[=12=]'
(根据 C 概念)。当我们创建任何 Class 的实例时,默认情况下 Objective C 将其设为 nil。
[NSNull null]
将给出一个对象。在 Objective C 中,NSNull
的使用受到限制。它用于集合(如 NSArray
和 NSDictionary
)
由于您使用的是NSDictionary,您可以如下查看。
if ([dict objectForKey:@"imageUrl"] != [NSNull null]) {
//your code...
}
我正在使用这个简单的代码来检查 NSString 对象是否为 null,但由于某种原因它失败了
这是我的简单检查
NSString *imageUrl = [dict objectForKey:@"imageUrl"];
NSLog(@"Jonge: %@", imageUrl);
if(![imageUrl isEqual:[NSNull null]]) {
NSLog(@"In the loop");
NSURL *url = [[NSURL alloc]initWithString:imageUrl];
NSData *data =[NSData dataWithContentsOfURL:url];
cell.imageView.image = [UIImage imageWithData:data];
}
调试清楚地显示对象为空,如下所示
2017-10-23 11:48:22.711228+0800 NWMobileTill[46614:7498779] Jonge: (null)
但我仍然陷入如下循环
2017-10-23 11:48:22.711367+0800 NWMobileTill[46614:7498779] In the loop
为什么我的空检查不起作用?
(null)
表示 nil
,而不是 [NSNull null]
,因此检查 imageUrl != NSNull
成功。
你必须写
if (imageUrl) {
与
相同if (imageUrl != nil) {
您还可以检查字符串是否为空。
if(![imageUrl isEqualToString:@""])
或者
if(![imageUrl isKindOfClass:[NSNull class]])
nil
不代表任何东西,或者在技术术语中,我们可以说 '[=12=]'
(根据 C 概念)。当我们创建任何 Class 的实例时,默认情况下 Objective C 将其设为 nil。
[NSNull null]
将给出一个对象。在 Objective C 中,NSNull
的使用受到限制。它用于集合(如 NSArray
和 NSDictionary
)
由于您使用的是NSDictionary,您可以如下查看。
if ([dict objectForKey:@"imageUrl"] != [NSNull null]) {
//your code...
}