投稿リクエストを作成する方法があります。そのリクエストにはx個のパラメータがあるかもしれませんが、どれも必須ではありません。 boolean型のパラメータがあります(これらは、値が "true"または "false"の文字列として渡されます(私の判断ではなく、APIです)。ブール値ではfalseと違うヌルはありますか?
ここに問題があります。メソッドの宣言には、ポスト要求の一部として受け入れた。問題は、その要求がブール・パラメータがtrueの場合、異なる結果を返す偽であるか、それが存在しないということである。
-(void) createRequestWithID:(NSString *)id translate(NSNumber *)translate onlyLastVersions:(NSNumber *)onlyLastVersions
私の方法のように私のメソッドIDの何か他の開発者が使用して呼び出すフレームワークの一部です。つまり、パラメータに渡すものを制御することはできません(私はラッパーとしてNSNumberを使用します)ブール値です。
ここに問題があります。メソッドがpasingと呼ばれているかどうかを、true、falseまたはnilと解釈できるかどうかを確認する必要があります。そのような場合、私はtranslate = "true"、translate = "false"、または翻訳中のリクエストがリクエストに含まれないためです。
true、false、nilを区別する方法が必要です。
GBDでのテスト私が手にそれをdifferenciateする方法を見つけるためにしようとする:
(GDB)のp translateFALSE $ = 5(のNSNumber *)を0x0
(GDB)のp translateNIL $ 6 =(のNSNumber *)0x0
(gdb)po translateFALSE NILオブジェクトの説明を印刷できません。
(gdb)po translateNIL NILオブジェクトの説明を印刷できません。
(gdb)po [translateFALSE class] NILオブジェクトの説明を印刷できません。
(gdb)po [translateNIL class] NILオブジェクトの説明を印刷できません。
だから、私はそれをする方法がありません。
それと私の2つのコード例があります。オブジェクトを 'false'に設定することはできません。これは' nil'に設定することと同じです。あなたはデバッグ出力でそのことがわかります。オブジェクトポインタは0x0 - NULLを指しています。数字を作るための 'NSNumber'のドキュメントを見てください。しかし、あなたは* NSNumber * n = [NSNumber numberWithBool:NO];' –