0

これは私のコードです:

if (userLatPosition != nil) {
    CLLocation *userLocation = [[CLLocation alloc] initWithLatitude:[userLatPosition floatValue] longitude:[userLongPosition floatValue]];
    [self getLocationTextForUserIndex:j withLocation:userLocation];
}

実行しようとすると、userLatPosition に次のように表示されます。

userLatPosition = (NSNumber *) 0x02ab6678 (null)

if ステートメントは false であると考えられ、if をスキップしますが、何らかの理由で if 行に入ります…</p>

誰かが理由を知っていますか?NSNumbers の (null) の適切なチェックは何ですか?

4

1 に答える 1

1

のように見えますuserLatPositionNSNull、ではありませんnilNSNullは と等しくないことに注意してください。値を受け入れないまたはなどのコンテナーに格納できる値をnil示すプレースホルダーです。nilNSDictionaryNSArraynil

チェックは次のようになります。

if(userLatPosition && userLatPosition != [NSNull null])
{
}

参照: NSNull の使用

于 2013-02-17T12:17:43.687 に答える