Iphone 如何在if中比较NSN编号
如何: 这似乎没有建立Iphone 如何在if中比较NSN编号,iphone,objective-c,ios,Iphone,Objective C,Ios,如何: 这似乎没有建立 对象:NSInteger通常是纯int类型,因此您的代码应该可以正常工作 如果myNSNumber是一个NSNumber对象(如变量名所示),则应提取其int值: if (myNSNumber == 1) { ... } 如果myNSNUmber是NSNumber,则代码应为 if ([myNSNumber intValue] == 1) { ... } if (myNSNumber == 1) { ... } 如果它是NSInteger,则可以直接将其
对象:NSInteger通常是纯int类型,因此您的代码应该可以正常工作 如果myNSNumber是一个NSNumber对象(如变量名所示),则应提取其int值:
if (myNSNumber == 1)
{
...
}
如果myNSNUmber是NSNumber
,则代码应为
if ([myNSNumber intValue] == 1)
{
...
}
if (myNSNumber == 1) {
...
}
如果它是NSInteger
,则可以直接将其与整数文本进行比较。因为NSInteger
是一种基本数据类型
if ([myNSNumber intValue] == 1) {
...
}
注意:确保您的声明中没有*
。您的NSInteger
声明应为
if ([myNSNumber intValue] == 1)
{
...
}
if (myNSNumber == 1) {
...
}
以下是@BoltClock最近发布的答案
但是,如果出于某种原因确实需要使用指向NSInteger(即NSInteger*)的指针,则需要取消对指针的引用以获取值:
NSInteger myNSNUmber; // RIGHT
NSInteger *myNSNUmber; // WRONG, NSInteger is not a struct, but it is a primitive data type.
NSNumber是一个结构,因此不能将其与整数进行比较。Simon发布的内容是正确的。
myNSNumber
是NSInteger还是NSNumber
?如果是NSInteger
请确保声明中没有*
。标题似乎不正确。NSInteger测试可以编译,我想你指的是NSNumber。