Memory's Cards + Gifts (2013年白色情人節 DIY 精選禮物)

全部 HAND MADE(纯人手製作),精心設計,款式精緻;全部都是獨一無二,送給特別的你!!
本網誌將調整圖片及影片顯示,適合大家在 iPad 直向瀏覽本網誌 !!

大家現在可以在 Facebook Fans PageTwitter 追蹤本網更新及歡迎大家給與意見 !!
只要對「 iPhone vs It 」讚好(Like) 或者按 Follow 以後就可以係 facebook/Twitter 收到本網誌最新資訊 !!

新 Blog ~~ Migrate iPhone To Android !! 
如果你想由 iPhone 轉去 Android Phone 就一定要睇吓 !!!
如果由 iPhone 轉去 Samsung Android Phone 就更加要睇吓 !!!





自訂搜尋

2010年8月20日星期五

iPhone 教室 : 認識 Objective-C (二)

上期我們講解了Objective-C算式中的變數及基本數學運算符號的運用,今期我們繼續學習Objective-C的語法及編寫。

函式:
到目前為此,我們所編寫的程式只有短短幾行程式碼,對於由幾千行組成的 Apps,我們仍要繼續努力。
而一個程式碼,就包含了一連串又長又複雜的程式碼,當中若出現一些錯誤,我們都好難找它出來並作出修正。另外,在程式碼中,我們可能寫了一些重複出現好幾次的程式碼,如該程式碼出現問題,我們將要一次修改多處的程式碼,這將會是又浪費時間及很容易出錯的步驟,所以必須將程式碼重組,並將重複的程式碼加以組合,令每一組程式碼更有效率,使發現錯誤及修改程式碼相對變得容易。我們現在看看以下程式:

-(void)viewDidLoad()
{
// put some code here.
}

上述句中,我們定義了函式名稱為 viewDidLoad(),接下來是左大括號及右大括號,而我們必須將程式碼放進左及右大括號的中間,這個我們叫做函式主體,我們以上一堂的程式碼看看,應該把程式碼放置到哪一個位置上。

-(void)viewDidLoad()
{
[super viewDidLoad];
NSInteger picWidth;
float picHeight, picArea;
picWidth = 7;
picHeight = 5.5;
picArea = picWidth * picHeight;
}

如果我們再增加程式碼到 viewDidLoad() 中,將會面對程式碼的複雜性增加,大大增加了程式碼除錯的困難,所以我們要另寫一個程式,除了必要的程式碼在viewDidLoad()中,我們還要建立另一個 circleArea() 的函式。

- (void)circleArea()
{// put some code here.}

函式引數:
在前一段中,我們沒有提到函式中小括號的用法,其實小括號之間,是用來放置外來輸入的引數給函式使用,現在我們修改上面的程式以作函式之間的呼叫。

- (float)circleArea:(float) inRadius
{
float Area;
Area = 3.1416 * inRadius * inRadius;
return Area;
}
- (void)viewDidLoad
{
[super viewDidLoad];
NSInteger picWidth;
float picHeight, picArea, circleSurfaceArea, circleRadius;
picWidth = 7;
picHeight = 5.5;
picArea = picWidth * picHeight;
circleRadius = 4.0;
// 我們在此呼叫我們剛寫的函式
circleSurfaceArea = [self circleArea: circleRadius];
NSLog(@"Circle Surface Area = %f", circleSurfaceArea);
}


在以上的例子中,我們定義了circleRadius的變數及將這變數輸入到 circleArea 函式中作為 inRadius 引數,使函式 circleArea 可作自行運算,將結果放入 Area 的變數中,再回存出來,放入 viewDidLoad() 中的 circleSurfaceArea 的變數中。我們可見使用函式將減少了程式碼的複雜性及增加可讀性,令程式更加簡潔及容易除錯。

下期我們將會繼續講解 Objective-C 語法及除蟲方法,將結果列印到螢幕作除錯。

夏錫文
筆者為iPhone Apps開發專家,現每逢星期四會在此專欄教大家由淺入深,一步一步地踏進Apps 的創作世界。電郵:simonhsm@hotmail.com

沒有留言: