コードで使用しようとしてNSAssertいますが、何もしません。
このコードでは、アサーションは失敗するはずですが、失敗しません。
MSLog(@"cross.obj = %@",[cross obj]);
NSAssert([cross obj]!=nil,@"[cross obj] == nil");
これの出力は次のとおりです。
cross.obj = (ヌル)
何が問題なのですか?
コードで使用しようとしてNSAssertいますが、何もしません。
このコードでは、アサーションは失敗するはずですが、失敗しません。
MSLog(@"cross.obj = %@",[cross obj]);
NSAssert([cross obj]!=nil,@"[cross obj] == nil");
これの出力は次のとおりです。
cross.obj = (ヌル)
何が問題なのですか?
NS_BLOCK_ASSERTIONSアサーションの機能をブロックします。定義を削除してみてください。
nilこの背後にある理由は、aと a のnull値に違いがあるためです。
ですから、他の例で確認してください。
それが動作します。
理由は、からの結果がで[cross obj]あり[NSNull null]、ではないためである可能性がありますnil。
出力はおそらく、シングルトンオブジェクト<null>を意味するのではなく、それを意味するNULLものです。このオブジェクトは、オプションではないプレースホルダーとして使用されます(たとえば、s)。nilNSNullnilNSArray
もう1つの理由は、NS_BLOCK_ASSERTIONSを無効にするプリプロセッサマクロが定義されていることである可能性がありますNSAssert。