一個小例子介紹Obj-C的函數命名方式
對于以前做C#或者JAVA開發的朋友而言,初次接觸iOS開發,Obj-C的函數命名方式可能會感覺非常不習慣。
尤其是打開AppDelegate.m,映入眼簾的代碼竟然是:
- - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
- {
- // Override point for customization after application launch.
- return YES;
- }
不知道會不會有朋友和我當初同樣的感覺——天啊,這也太長了!!!
其實,在Obj-C中,上面這個函數的函數名應該是:
- - (BOOL)application:didFinishLaunchingWithOptions:
括號后面跟隨的application和launchOptions是在函數內使用的參數。
我們可以將這個函數解讀為“應用程序:完成啟動使用選項:”。
其中“應用程序”冒號后面的參數顧名思義就是應用程序自身。
而“完成啟動使用選項”冒號后面的參數顧名思義就是啟動的選項。
這里我用了兩個“顧名思義”,對就是顧名思義!在Obj-C的函數命名的方式有點類似于自然語言,相信大家會像我一樣,隨著對iOS開發的逐漸深入,會越來越適應甚至喜歡這種命名方式的。
下面再舉一個例子,如果我們在java中定義一個加法的函數,大概會用如下方式:
- /**
- * 計算a+b的結果
- * @param a
- * @param b
- * @return 返回a+b的和
- */
- public int add(int a, int b) {
- return a + b;
- }
在java中定義函數時,通常我們會習慣編寫一個簡單的注釋,如此一來我們可以在程序的其他位置,利用eclipse的智能提示看到這些參數分別代表什么意思,還可以使用Javadoc工具生成程序文檔。這是非常方便而且有意義的!
而在Obj-C中我們會如何做呢?首先定義一個函數,代碼如下:
- - (NSInteger)addA:(NSInteger)a withB:(NSInteger)b {
- return a + b;
- }
而在調用該函數時,Xcode的提示會大概如下所示:
- [self addA:(NSInteger) withB:(NSInteger)];
此時,我們可以把這句話解讀成“加A和B”,有沒有覺得更容易理解一些啊?應該會的,呵呵。
在Obj-C中,如果養成良好的函數命名習慣。相信隨著時間的推移,你會發現,需要寫的注釋會越來越少。盡管在Xcode中沒有類似于 eclipse的智能提示,但是這并不會妨礙我們一目了然地看明白每個函數都是做什么的,以及它們都需要什么參數,乃至各個參數都分別應該是什么類型的。
一起來享受快樂的iOS開發之旅吧~~~