我無法找到一個方法來定義一個默認的參數傳遞給函數在IOS就像你通常會用C++做。在iOS中可以嗎?如果沒有,推薦使用什麼工作?
7
A
回答
28
這在Objective-C中是不可能的。一種選擇是做這樣的事情來獲得相同的功能:如果你正在尋找一個在完全忽略某個參數的能力,這是在Objective-C進行的典型方式
- (void)someMethodThatTakesAString:(NSString *)string
{
if (string == nil) string = @"Default Value";
// Use string
}
就是有多種方法逐步更具體的參數設置:
- (void)doSomethingWithOptionA:(BOOL)optionA andOptionB:(int)optionB
{
// Do something using options to control exactly what's done
}
- (void)doSomethingWithOptionA:(BOOL)optionA
{
[self doSomethingWithOptionA:optionA andOptionB:42]; // Where 42 is the default for optionB
}
- (void)doSomething;
{
[self doSomethingWithOptionA:NO]; // NO is the default for optionA
}
然後如果你想只用默認參數DoSomething的,你可以叫-doSomething
。如果你想設置optionA,但不關心optionB,你可以撥打-doSomethingWithOptionA:
等。
最後,值得注意的是,你可以使用C++爲iOS編寫代碼,而且你也可以混合使用Objective-C和C++使用Objective-C++。總而言之,請始終仔細考慮如何在您所使用的環境中做最好的事情。不要試圖將C++習語和模式強制到Objective-C和Cocoa上。他們不同,他們的目的就是這樣。找到一個在編寫Objective-C代碼時沒有放棄C++約定的C++程序員通常很容易,而這通常不是一件好事。
1
看看答案在這裏:Objective-C Default Argument Value
你應該做的就是定義需要的所有參數,然後寫少走參數方便的方法,然後轉身和調用較長方法使用默認的方法你想值
相關問題
- 1. 定義默認值,函數參數
- 2. 如何爲url helper方法的參數設置默認值?
- 3. 方法包含默認參數值
- 4. 如何在Phalcon的路由參數中定義默認鍵=>值對行爲?
- 5. 爲JLabel定義默認值
- 6. Groovy默認方法參數
- 7. 爲參數指定默認值
- 8. 如何使用非默認參數的值作爲Python中默認參數的默認值?
- 9. PROC設置爲默認方法參數
- 10. 無法將默認布爾參數設置爲默認值
- 11. 如何在ASP.NET MVC中定義默認動作參數4
- 12. 如何在類中定義許多靜態(默認)參數python3
- 13. 如何定義默認構造函數參數的存取方法?
- 14. 動態定義方法的默認參數
- 15. 如何設置默認的方法的參數值?
- 16. 定義爲ULONG和可選參數的默認值0
- 17. 如何在Rails中爲文本列定義默認列值?
- 18. 笨+默認方法時參數存在
- 19. 在默認參數上重載方法
- 20. 重載方法中的默認參數
- 21. 如何在python中重寫方法默認參數?
- 22. 如何爲自定義Django設置定義默認值
- 23. 如何使用define_method指定方法默認參數?
- 24. 默認值參數
- 25. 如何爲Pylons操作指定默認參數值?
- 26. 如何在c#函數中爲List <>參數指定默認值?
- 27. Python - 在__hash__方法定義中使用默認的__hash__方法
- 28. 如何默認爲默認參數在Python
- 29. 在方法默認參數中使用self的方法?
- 30. LinqDataSource:如何定義默認值
你可以混合C++和的OBJ-C代碼 – Felix 2012-03-05 22:38:01
我想你指的對象 - 方法而不是函數 – Felix 2012-03-05 22:38:57
是 - 我的意思的OBJ C法對不起 – tiguero 2012-03-05 22:42:00