2014-03-25 95 views
1

我想更新一箇舊的應用程序,我最後更新回iOS 6(我已經離開了一段時間)。我有以下方法:更新到Xcode 5後的新警告

-(NSString*)massResult: tipusCalcul:(NSNumber*)calcul massConcetracio:(NSString*)massaConcentracio volum:(NSString*)volum decimals:(NSString*)decimals; 

當時沒問題。但今天我加載了最新的Xcode的項目,並出現以下警告:

'tipusCalcul' used as the name of the previous parameter rather than as part of the selector 

我搜索了警告和我發現,只是改變了方法:

-(NSString*)massResult: (NSNumber*)calcul massConcetracio:(NSString*)massaConcentracio volum:(NSString*)volum decimals:(NSString*)decimals; 

警告消失。

問題是,我不太瞭解警告,爲什麼它只出現在新的Xcode中。如果有人能解釋一下,那會很好。

在此先感謝!

+3

你知道在第一個版本中你沒有爲'massResult:'定義參數,對吧? – Flexicoder

回答

3

方法簽名:

-(NSString*)massResult: tipusCalcul:(NSNumber*)calcul massConcetracio:(NSString*)massaConcentracio volum:(NSString*)volum decimals:(NSString*)decimals; 

你沒有指定massResult:的說法。這就是警告發生的原因。

你寫的是:

massResult: tipusCalcul:(NSNumber*)calcul 

所以會發生什麼是XCode將以此爲:

massResult:(id)tipusCalcul :(NSNumber*)calcul 

tipusCalcul將被視爲massResult的參數名稱,而不是將其作爲方法名稱的一部分。

+0

我一直在用Arduino平臺編程很長一段時間。儘管它非常相似,但我認爲它在回到iOS時讓我感到困惑。該方法的意圖被命名爲'massResult',以返回一個字符串並接受所有這些NSNumber和NSStrings作爲參數。該方法接受所有參數,計算一些東西並返回一個NSString。 – Marcal

+0

@馬卡爾:那麼,現在這個方法有什麼問題嗎? –

+0

它工作正常。我想我將不得不重新學習一些基礎知識。謝謝。 – Marcal