Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS中的NSNumber等效错误_Ios_Objective C_If Statement_For Loop_Nsnumber - Fatal编程技术网

iOS中的NSNumber等效错误

iOS中的NSNumber等效错误,ios,objective-c,if-statement,for-loop,nsnumber,Ios,Objective C,If Statement,For Loop,Nsnumber,我试图在范围内找到信标,并对UITableViewCells进行排序。 我正在尝试这个 NSLog(@"Trying (%@ = %@, %@ = %@)",major, beacon1.major,minor, beacon1.minor); if(beacon1.major == major && beacon1.minor == minor){ NSLog(@"%@;%@ is first",major,minor);

我试图在范围内找到信标,并对UITableViewCells进行排序。 我正在尝试这个

NSLog(@"Trying (%@ = %@,  %@ = %@)",major, beacon1.major,minor, beacon1.minor);


        if(beacon1.major == major && beacon1.minor == minor){
            NSLog(@"%@;%@ is first",major,minor);
            [room insertObject:room atIndex:0];

        }
这意味着,如果NSNumber MARY和NSNumber MARY等于找到的信标,则将运行if。 NSLog重新运行此:

2015-01-02 12:33:02.277 App[468:30045] Trying (47566000 = 47566,  39534000 = 39534)
2015-01-02 12:33:02.278 App[468:30045] Trying (47566000 = 47566,  39534000 = 39534)
2015-01-02 12:33:02.279 App[468:30045] Trying (47566 = 47566,  39534 = 39534)
我以后会期待它第三次运行。但事实并非如此


有人知道这里发生了什么吗?

您正在比较的是变量实例相等性,而不是包含的值

改为使用isEqualToNumber:

代码应该如下所示:

if ([beacon1.major isEqualToNumber:major] && [beacon1.minor isEqualToNumber:minor]) {
    ...
}