3

私は実際にiOSアプリケーションをデバッグしています:変数がnullかどうかをテストしたい:

ばかげた質問ですね!

if (var !=nil) { doSomeWork ; }

したがって、変数 var が nil に等しく、この結果をデバッガー領域に出力したい場合、次のようになります。

2012-10-12 21:33:01.553 アプリケーションの名前 [892:13d03] (null)

これはクールですが、実際に変数の内容をデバッガー領域に出力しようとすると、次のように表示されました。

2012-10-12 21:33:01.553 アプリケーションの名前 [892:13d03] < null >

この 2 種類の null の違いと、2 番目の null が nil に等しいかどうかをテストする方法を教えてください。

前もって感謝します

4

2 に答える 2

6

2 番目の出力 は<null>NSNullシングルトンから取得されます。これは、毎回同じシングルトン インスタンスを返すNSNullクラス メソッドを持つクラスです。このクラスの主な目的は、コレクションなど、 を配置できない場所での代役として機能できるようにすることです。たとえば、JSON ライブラリは通常、JSON に が含まれている場合に返されます。+nullNSNullnilnilNSNullnull

==toかどうか[NSNull null](シングルトンであるため)、または if かどうかを尋ねるだけで、これをテストできます[obj isKindOfClass:[NSNull null]][obj isEqual:[NSNull null]]よろしければお使いいただけます。とは無料でブリッジされている== kCFNullので、必要に応じて尋ねることもできます。どんなスタイルもあなた次第です。CFNullNSNull

于 2012-10-12T19:55:07.887 に答える
0

NSNullそれはクラスでnilはありません。したがって、nil何かと比較する場合は、" =="を使用する必要があります。if NSNullthen ->if ([var isEqual:[NSNull null]]) { ....}

于 2012-10-12T19:55:28.790 に答える