代码:
NSString *tempPhone = [NSString stringWithFormat:@"%@", [personDict objectForKey:kPhoneKey]];
NSLog(@"NSString *tempPhone = %@",tempPhone);
输出:
NSString *tempPhone = <null>
现在我想添加if条件, not null ;我尝试了以下内容:
if (tempEmail != NULL)
if (tempPhone != Nil)
if (tempPhone != nil)
if (![tempPhone compare:@"<null>"])
if (tempPhone != (NSString*)[NSNull null])
我也查了this Post.
他们都不适合我。我哪里错了?
答案 0 :(得分:8)
尝试以下代码
id phoneNo = [personDict objectForKey:kPhoneKey];
if( phoneNo && ![phoneNo isKindOfClass:[NSNull class]] )
{
NSString *tempPhone = [NSString stringWithFormat:@"%@", [personDict objectForKey:kPhoneKey]];
NSLog(@"NSString *tempPhone = %@",tempPhone);
}
else
{
NSLog(@"NSString *tempPhone is null");
}
答案 1 :(得分:1)
我认为您的personDict
没有关键字kPhoneKey
的对象,因此它返回nil
。使用nil
格式化%@
时,您会收到字符串“(null)
”。
id object = [personDict objectForKey:kPhoneKey];
if (object) {
NSString *tempPhone = [NSString stringWithFormat:@"%@", object];
NSLog(@"NSString *tempPhone = %@",tempPhone);
} else {
// object is nil
}
答案 2 :(得分:1)
if (tempPhone != nil || [tempPhone isEqualToString:@"(null)"])
适合我。
答案 3 :(得分:1)
就是这样:
if (![tempPhone isKindOfClass:[NSNull class]] && tempPhone != nil)
答案 4 :(得分:1)
if([str_name isKindOfClass:[NSNull class]])
适合我...
答案 5 :(得分:0)
我检查了webResponse(在我的例子中是JSON)。 它返回了我的字符串值:
<null>
所以,以下条件对我有用:
if (![tempPhone isEqualToString:@"<null>"])
感谢您的所有时间。感谢。
答案 6 :(得分:0)
因为compare
方法返回定义为
NSComparisonResult
enum _NSComparisonResult {NSOrderedAscending = -1, NSOrderedSame, NSOrderedDescending};
typedef NSInteger NSComparisonResult;
如果字符串相同,它将返回NSOrderedSame
NSInteger
值为0
的{{1}}。
因此,以下行实际上意味着......
if (![tempPhone compare:@"<null>"]) // `tempPhone` is equals to `@"<null>"`
或更明白的解释,如果tempPhone
值等于@"<null>"
。
你应该把它写成
if ([tempPhone compare:@"<null>"] != NSOrderedSame)
或
if (![tempPhone isEqualString:@"<null>"])
答案 7 :(得分:0)
如果字符串具有空值。 NSLog中的示例..以这种方式实现..
if ([StringName isKindOfClass:[NSNULL Class]]) {
}
else {
}
答案 8 :(得分:0)
首先我们需要检查字符串长度。
if(tempPhone.length == 0) `
{
//您的String具有空值(E.x,(null))
}
否则
{
//你在这个字符串中有一些值
}`