如何比较if中的NSNumber

The*_*ner 5 iphone objective-c ios

如何:

if (myNSNumber == 1)
{
 ...
}
Run Code Online (Sandbox Code Playgroud)

这似乎没有建立

物体:

Emp*_*ack 16

如果myNSNUmberNSNumber,你的代码应该读,

if ([myNSNumber intValue] == 1) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

如果是NSInteger,您可以直接将其与整数文字进行比较.因为NSInteger是原始数据类型.

if (myNSNumber == 1) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

注意:请确保您*的声明中没有.你的NSInteger声明应该是,

NSInteger myNSNUmber; // RIGHT
NSInteger *myNSNUmber; // WRONG, NSInteger is not a struct, but it is a primitive data type.
Run Code Online (Sandbox Code Playgroud)

以下是基于@BoltClock的答案,他最近在发布


但是,如果由于某种原因需要使用指向NSInteger的指针(即NSInteger*),则需要取消引用指针以获取值:

if (*myNSNUmber == 11) {
}
Run Code Online (Sandbox Code Playgroud)