如何结合`int`和`NSInteger`的优点

Bes*_*esi 2 iphone objective-c nsnumber ios

一个看似简单的问题:我可以使用某种Number对象,它可以是nil但我可以像原始int一样分配:

像这样:

NSNumber *n = nil; 
n = 3; 

if(n == nil){ 
    // some actions... 
} else if (n == 1){ 
    // some actions... 
} else { 
    // some actions... 
}
Run Code Online (Sandbox Code Playgroud)

感谢您的输入

Emp*_*ack 6

答案是不.如果变量是一个对象,你可以分配另一个对象,

n = anotherNSNumber;
Run Code Online (Sandbox Code Playgroud)

或者,使用属性方法设置值,

n = [NSNumber numberWithInt:3];
Run Code Online (Sandbox Code Playgroud)

并将对象与另一个对象进行比较,

if (n == anotherNSNumber) // Checks the reference
Run Code Online (Sandbox Code Playgroud)

或者使用属性/方法比较它的值,

if (([n intValue] == 3) || ([n intValue] == [anotherNSNumber intValue]))
Run Code Online (Sandbox Code Playgroud)