iPhone開發(fā) Action 與 Objective-C 學(xué)習(xí)基礎(chǔ)
iPhone開發(fā) Action 與 Objective-C 學(xué)習(xí)基礎(chǔ)是本文要介紹的內(nèi)容,不多說,我們吸納來看內(nèi)容。我們先來分析一下上一回初次接觸的Objective-C代碼?! ?/p>
- (IBAction)myAction1:(id)sender {
- int kakaku = [[motone text] intValue];
- switch([waribiki selectedSegmentIndex]){
- case 0:
- kakakukakaku = kakaku * (1.f - 0.2f);
- break;
- case 1:
- kakakukakaku = kakaku * (1.f - 0.3f);
- break;
- case 2:
- kakakukakaku = kakaku * (1.f - 0.4f);
- break;
- case 3:
- kakakukakaku = kakaku * (1.f - 0.5f);
- break;
- default:
- break;
- }
- [kekka setText:[NSString stringWithFormat:@"%d", kakaku]];
- }
這里的代碼是使用Segmented Control實現(xiàn)折扣率變化時的Action。讓我們從最初的代碼開始。
取出值
Text Field控件中取得輸入值
首先,我們?nèi)〕鲇脩糨斎氲纳唐吩瓋r。前面已經(jīng)介紹過了,控件的值都是通過Outlet來得到的。這里Text Field的Outlet是「motone」,其代碼如下:
- int kakaku = [[motone text] intValue];
等號右邊就是通過Outlet得到值的方法。將其賦值到變量kakaku中。
Segmented Control控件中取得值
接下來我們從Segmented Control控件的Outlet「waribiki」中取得其設(shè)定值。這里,我們?nèi)〕龅氖荢egmented Control控件中的「第幾個按鈕被按下」。不同的按鈕對應(yīng)不同的折扣率。比如最左邊的按鈕是20%。
- [waribiki selectedSegmentIndex]
這里最左邊的是索引是0,最右邊是3。
Objective-C的語法
接觸過C語言編程的朋友也許很快能適應(yīng)Objective-C的語法的語法,畢竟它是由C語言演化過來的語言(其中大量繼承了Smalltalk語言的思想)。我們以上面兩個控件為例,來學(xué)習(xí)一下它的基本語法。
Objective-C的函數(shù)調(diào)用
函數(shù)調(diào)用首先用 [ ] 來包住實現(xiàn)代碼。函數(shù)調(diào)用的對象叫做接收器(receiver,可以理解為對象實例)。
用Interface Builder配置的控件Outlet就是接收器。接收器與函數(shù)(Objective-C中叫做消息)之間用空格分開。用[ ]括住的一個整體就是一次函數(shù)調(diào)用。
你也可以嵌套的使用這樣的函數(shù)調(diào)用形式。比如從Text Field控件中取得輸入值的時候,就是先在「motone」中執(zhí)行了「text」,取出具體的文字對象,然后以其為接收器來執(zhí)行「intValue」消息。這樣,我們最終得到的結(jié)果就是一個整形的值。
計算與表示結(jié)果
接下來我們來計算打折后的價格。由商品原價「kakaku」和由Segmented Control控件得到的打折率需要計算出商品打折后的價格。比如選擇最左邊20%的時候,計算公式如下:
- kakakukakaku = kakaku * (1.f - 0.2f);
小數(shù)后面的「f」表示「float」。如果將整數(shù)作為小數(shù)來使用的情況下,使用「1.f」而不是「1f」。
不同的折扣率需要不同的計算方法,這里使用switch語法來區(qū)分各種情形:
- switch([waribiki selectedSegmentIndex]){
- case 0:
- kakakukakaku = kakaku * (1.f - 0.2f);
- break;
- case 1:
- kakakukakaku = kakaku * (1.f - 0.3f);
- break;
- case 2:
- kakakukakaku = kakaku * (1.f - 0.4f);
- break;
- case 3:
- kakakukakaku = kakaku * (1.f - 0.5f);
- break;
- default:
- break;
- }
接下來我們使用Label控件的Outlet「kekka」來表示計算的到得打折扣價格「kakaku」。
- [kekka setText:[NSString stringWithFormat:@"%d", kakaku]];
與上面的函數(shù)調(diào)用不同,這里增加了參數(shù)。
Objective-C的函數(shù)調(diào)用
「setText」函數(shù)的參數(shù)是一個字符串,而「kakaku」變量是一個整數(shù),所以我們先將整數(shù)變換為字符串型「NSString」。這里我們使用到了「NSString」的字符串格式函數(shù)「stringWithFormat」。最后再通過Label控件的Outlet「kekka」經(jīng)具體的值表示出來。
在以后的學(xué)習(xí)中,我們將更加深入地學(xué)習(xí)Objective-C的各種語法和思想。
小結(jié):iPhone開發(fā) Action 與 Objective-C 學(xué)習(xí)基礎(chǔ)的內(nèi)容介紹完了,希望本文對你有所幫助,更多相關(guān)內(nèi)容,請參考編輯推薦。