iMa*_*ash 0 objective-c nsinteger ios
这可能是最简单的一个,但我无法找到确切的原因.而不是用以下单词解释我的代码:
NSString *str = @"";
NSInteger tempInteger = [str integerValue];
if (tempInteger == 0)
{
NSLog (@"do something");
}
Run Code Online (Sandbox Code Playgroud)
如果NSString返回NULL然后NSInteger返回0并且如果NSString有一些值则NSInteger返回相同的值.
但是,当NSString是NULL那么我想NSInteger应该返回NULL不为0,但我不能确认NSInteger为NULL.
如果为NULL,我怎样才能得到NULL值?NSIntegerNSString
and*_*n22 10
NULL是一个指针; NSInteger是一个只能保存数字的C原语.永远不可能有NSInteger NULL.(旁注:当我们谈到Objective-C对象指针时,我们使用nil而不是NULL.)
相反,如果您只希望处理整数值为0但字符串不是的情况 NULL,则应更改条件,如下所示:
if (tempInteger == 0 && str != nil)
Run Code Online (Sandbox Code Playgroud)
但是,在您的情况下,字符串不是nil; 它只是一个存在的 - 但是空的 - 字符串.如果您还想检查,您的病情可能会变成:
if (tempInteger == 0 && [str length] > 0)
Run Code Online (Sandbox Code Playgroud)
这会检查两种情况,因为nil字符串将返回长度0.(事实上,发送的任何方法来nil将返回0,nil,0.0取决于返回类型,等等).
| 归档时间: |
|
| 查看次数: |
7237 次 |
| 最近记录: |