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'對象嗎?我的印象是,'''或''後的所有內容都不會被考慮提交,例如在我的例子中,如果問題id是nil/null,所有後續參數像shareFb,shareTwitter,youtube_id將被截斷。 – Zhen 2012-01-09 02:29:30
@ Zhen是的,第一個零對象將終止initWithObjectsAndKeys方法。我編輯了一下,告訴你如何進入每個不是零的參數。如果您從JSON填充這些值,您可能需要擴展if語句以檢查isEqual:[NSNull null]原始問題中的操作方法 – 2012-01-09 02:49:10
好的,所以您在說我需要先執行檢查在我的情況下的參數。得到它了。謝謝! – Zhen 2012-01-09 03:02:48