obe*_*aum 13 null objective-c nsstring
所以我想检查我的数组中的项目[clientDataArray objectForKey:@"ClientCompany"]
是否是nil
.
temp = [clientDataArray objectForKey:@"ClientCompany"];
if (temp != [NSNull null]) infofieldCompany.text = temp;
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经能够通过上面的代码实现这一点,但它确实给了我警告
NSArray
可能无法回应-objectForKey:
struct NSNull *
并且struct NSString *
没有强制转换我的主要兴趣是第二次警告,但第一次警告也让我感兴趣.我该如何调整上面的代码?
Tom*_*rys 20
你的第一个警告看起来像你正试图打电话objectForKey
给NSArray
.哪个不行,因为NSArray
没有objectForKey
方法.
至于第二个警告你可以直接与nil比较,即:
if (temp != nil)
Run Code Online (Sandbox Code Playgroud)
或者因为nil等于0,你也可以这样做:
if (temp)
Run Code Online (Sandbox Code Playgroud)
小智 16
在尝试了所有选项之后,我认为这是comapre NSString null的最佳选择
if ( temp != ( NSString *) [ NSNull null ] )
{
// do some thing
}
Run Code Online (Sandbox Code Playgroud)
小智 14
之前给出的两个答案都错过了一个基本点:你不能放入nil
一个数组,所以你永远不会nil
离开数组.在数组中使用NSNull
占位符是正确的事情,但是你的变量temp
不能被声明为NSString *
,因为它可能不是一个.使用NSObject *
或id
作为变量的类型来抑制比较警告.