0
以下のコードは、サーバーにサブミットするパラメーターを準備する方法を示しています。 if-else節をチェックして、送信するパラメータを確認します。つまり、質問IDが存在する場合は質問IDのみを送信し、それ以外の場合は質問テキストとトピックIDを送信します。NSDictionaryの重複したコードを削除するサーバーへのサブミットに使用されるパラメーター
しかし、これは少し繰り返して、私のPOVの中で最良のコーディング形式ではないと感じます。どのように私はそれがより効率的にするためにコードをリファクタリングすることができます(重複を除く)
if(self.question._id || [self.question._id isEqual:[NSNull null]])
{
//Set up params for submission
NSDictionary *params= [[NSDictionary alloc] initWithObjectsAndKeys:
self.answer.text, @"text",
//if question id exists, submit question id only
self.question._id, @"question_id",
shareFb, @"fbShare",
shareTwitter, @"twitterShare",
self.question.source,@"questionSource",
self.answer.videoId,@"youtube_id",
nil
];
}
else
{
//Set up params for submission
NSDictionary *params= [[NSDictionary alloc] initWithObjectsAndKeys:
self.answer.text, @"text",
//else submit question text and topic id
self.question.text, @"question_text",
self.question.topic._id, @"topic_id",
shareFb, @"fbShare",
shareTwitter, @"twitterShare",
self.question.source,@"questionSource",
self.answer.videoId,@"youtube_id",
nil
];
'null'または 'nil'オブジェクトをサーバーに送信しても問題ありませんか?私はa'null 'または' nil 'の後のすべてが提出のために考慮されないという印象を持っています。私の例では、question idがnil/nullの場合、それ以降のすべてのパラメタ(shareFb、shareTwitter、youtube_idなど)が途切れてしまいます。 – Zhen
@ Zhen yes、最初のnilオブジェクトはinitWithObjectsAndKeysメソッドを終了します。私は編集して、各パラームを取得する方法を示しています。 JSONからこれらの値を入力する場合は、isEqualをチェックするためにif文を拡張することができます。元の質問で[NSNull null]を実行する方法 –
[OK]をクリックすると、まずチェックを行う必要があります私の場合はparams。とった。ありがとう! – Zhen