检查是否为空 NSNumber
如何检查对象是否是 NSNumber 零或空?
OK 零很简单:
但是如果创建了对象,但没有价值,因为约会失败了,我该怎么办? 使用这样的东西?
例如,是否有一般的测试物体对象,例如 for NSString /看到这一点
http://www.wilshipley.com/blog ... .html
/?
例子 1
什么值包含
? 我怎么能检查空
?
例子 2
如果我以后使用它会发生什么
安装在零?
我会得到零吗?
例子 3
例如,所以 NSLog 从未叫过。
- 不是
和不
. 所以,它包含任意数量?
OK 零很简单:
NSNumber *myNumber;
if /myNumber == nil/
doSomething
但是如果创建了对象,但没有价值,因为约会失败了,我该怎么办? 使用这样的东西?
if /[myNumber intValue]==0/
doSomething
例如,是否有一般的测试物体对象,例如 for NSString /看到这一点
http://www.wilshipley.com/blog ... .html
/?
例子 1
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setValue:@"" forKey:@"emptyValue"];
NSNumber *emptyNumber = [dict objectForKey:@"emptyValue"];
什么值包含
emptyNumber
? 我怎么能检查空
emptyNumber
?
例子 2
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setValue:@"" forKey:@"emptyValue"];
NSString *myString = [dict objectForKey:@"emptyValue"];
if /myString == nil || [myString length] == 0/
// got an empty value
NSNumber *emptyNumber=nil;
如果我以后使用它会发生什么
emptyNumber
安装在零?
[emptyNumber intValue]
我会得到零吗?
例子 3
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setValue:@"" forKey:@"emptyValue"];
NSNumber *myEmptyValue = [dict objectForKey:@"emptyValue"];
if /myEmptyValue == nil/
// NSLog is never called
NSLog/@"It is empty!"/;
例如,所以 NSLog 从未叫过。
myEmptyValue
- 不是
nil
和不
NSNull
. 所以,它包含任意数量?
没有找到相关结果
已邀请:
5 个回复
詹大官人
赞同来自:
,
, ... 从值创建并始终包含它。 测试某个值,例如
, 它仅适用于您不在您使用的允许值范围内。
在罕见的情况下,当您具有表示值时代码更简单
"invalid"
或者
"not set"
, 你不能使用
/例如,使用标准容器/, 您可以使用
http://developer.apple.com/lib ... 3-SW1
而不是这个。
在你的
第一个例子
有可能:
但请注意,您无法简单地插入 /或删除/ 如果您不需要区分,则此值
/即不在容器中/ 和,让我们说
"invalid"
:
关于
第二个例子
, 那
给你
- 只是因为发送消息
回报
. 你也可以得到
, 例如,
, 谁的
早些时候安装在
, 什么可以是有效的价值。
正如我已经写过的那样,只有在
不适合您允许的价值
. 注意
为你
最重要的是取决于您的要求。
让我试试
测试
结果 :
选项 #1:
如果您不需要来自数字数量的所有值,则可以使用一个 /
或者
或者 .../ 和
/ .../ 特定的想法
"empty"
. 显然,这不适用于您。
选项 #2:
您只需存储并且如果它们,请不要删除容器中的值
"empty"
:
但是,这意味着空键和永不存在的键之间没有区别或非法。
选项 #3:
在一些罕见的情况下,将字典中的所有键存储并代表更方便
"empty"
与另一个值。 如果您不能使用其中一个数字之一,我们必须放弃其他东西
没有概念
"empty"
. Cocoa 已经有了
对于这种情况:
现在,此选项允许您区分
"empty"
,
"not empty"
和
"not in the container"
/例如,非法关键/.
龙天
赞同来自:
- 这是要么
, 无论是它包含一个数字,其中什么都不是。 “空虚”是一个概念,取决于特定对象的语义,因此看起来没有意义寻找空虚的一般扫描。
至于您的例子,这里有几件事:
将退出这里
, 但只是因为
有一种方法
. 如果您将消息更改为只能完成的内容
, 代码将失败:
NSLog/@"%i", [number unsignedIntValue]/;
它会抛出:
-[NSCFString unsignedIntValue]: unrecognized selector sent to instance 0x303c
这意味着你
不是
得到某种一般意义 “empty” 退出 hash, 你刚刚得到
, 你在那里保存了哪些。
当你有空的时候 /
/
并且您向他发送消息,结果将是零。 这只是一种语言协议,简化了代码:
会变成它:
我希望它会有所帮助。
三叔
赞同来自:
在我的情况下,我就是:
帅驴
赞同来自:
s 它们是不可变的,只能在工厂方法或初始方法的帮助下创建,这给了它们一些数值。 据我所知,这是不可能的 'empty' NSNumber, 如果你不这么认为 0.
君笑尘
赞同来自:
我所做的是我安装零保护,因为我更愿意得到默认值而不是失败。
其中一种方式是:
我对浮子有完全相同的。 至少你,至少会得到默认值。 其他方式 - 只需创建零保护方法..
你将被称为这样的人: