0

前の開発者が去った後に移動したプロジェクトに次のブロックがあります

NSObject *object = (NSObject *)string;
if([object isEqual:[NSNull null]])
    return @"none"

辞書から返されたはどこstringにありますか。NSString *

NSNull をチェックする必要があることは理解していますが、最初に NSObject にキャストする理由を教えてもらえますか?

4

3 に答える 3

3

idキャストは不要ですが、オブジェクトが ではないことがわかるまでNSNull(たとえば、コレクションから取り出した場合など) 、オブジェクトを として保持するのが通常は最善です。NSString*実際にある可能性のある がある場合、NSNull混乱する可能性があります。おそらく、元の作成者は、文字列が実際には別のものである可能性があることを明確にしたかったのでしょうか?

また、NSNullシングルトンとして文書化されているため、(必要に応じて) を使用して比較できます==

于 2013-07-24T08:48:21.140 に答える