如何:
if (myNSNumber == 1)
{
...
}
这似乎没有构建
对象:
答案 0 :(得分:16)
如果 myNSNUmber 为NSNumber
,则应阅读您的代码,
if ([myNSNumber intValue] == 1) {
...
}
如果是NSInteger
,您可以直接将其与整数文字进行比较。因为NSInteger
是原始数据类型。
if (myNSNumber == 1) {
...
}
注意:请确保您的声明中没有*
。您的NSInteger
声明应该是
NSInteger myNSNUmber; // RIGHT
NSInteger *myNSNUmber; // WRONG, NSInteger is not a struct, but it is a primitive data type.
以下内容基于@ BoltClock的答案,他最近发布了here
但是如果由于某种原因需要使用指向NSInteger的指针(即NSInteger *),则需要取消引用指针以获取值:
if (*myNSNUmber == 11) {
}
答案 1 :(得分:3)
NSInteger通常是一个普通的int类型,所以你的代码应该可以正常工作。
如果myNSNumber是一个NSNumber对象(如变量名所示)那么你应该提取它的int值:
if ([myNSNumber intValue] == 1)
{
...
}