IOS開發---菜鳥學習之路--(一)


PS(廢話):

  看了那么多的博客文章,發現大部分人都一直在強調寫技術博客的重要性,索性自己也耐着性子寫寫看吧。

  寫博客的重要性之類的說明,我就不做復制黏貼的工作了。因為自己沒有寫過多少,所也不清楚是不是真的能象他們說的那樣有那么多的好處。

  好了廢話不多說了。直接開始正文吧

正文:

  此文主要描寫的內容,就是講述一下我自己是怎么樣從零開始,學習IOS 開發,然后到目前為止的一步步路程(經驗的總結)吧。雖然目前還沒有一個完整的客戶端,但是也快要完成了。

  開發環境啊什么的我就不多說了。

  有能力的人。就蘋果的電腦吧。沒有的話就虛擬機以及黑蘋果吧。

  開發工具的話使用的是XCODE

  語言objective-c

  這些基礎的准備內容。網上有很多。我這邊就不做重復的講解了。(純粹本人懶。哈哈)

  觀看本文的話首先要有一定的objective-c 語法基礎。起碼要知道如何定義類,定義屬性,定義方法等。

   桔子的書還是不錯的。建議大家可以去買來看下。

  我這邊的內容可能寫出來有點誤人子弟。(不過對於純粹只是想先嘗試下IOS開發的人來說應該還是可以的)

  開篇基本就這么多了。(對於有objective-c基礎的人而言)

沒有objective-c基礎的人請繼續下去看。有了的話就可以點擊返回期待下一篇了。

 寫IOS程序的話一共會包含三個文件 分別是 .h 文件  .m文件 .xib文件(老的IOS項目為.nib文件)學的比較早的人稱該文件為'尼be' 文件  也就是 'nib'的發音.雖然現在是xib 但是他們還是習慣的用老的稱呼.所以大家在聽到 他們講NIB文件的時候其實就是指的XIB文件

然后來講一下三個文件的作用.

.h文件 為聲明文件 (所有的聲明都放在這里.如果外部需要調用該類的方法的話那么就需要在這里定義方法名)

.m文件 實際的代碼編寫文件

.xib文件  可視化編輯界面.直接可以在里面拖拉控件排版.

(PS:本人是做.net的主要 所以可能之后很多地方會於C#進行比較着來講解,如果看不懂請見諒.)

#import <UIKit/UIKit.h>

@interface LookInfoModelCell : UITableViewCell
{
    UILabel *contentlabel;//定義屬性
    UILabel *typelabel;
}
@property(nonatomic,retain) IBOutlet UILabel *contentlabel;//定義屬性
@property(nonatomic,retain) IBOutlet UILabel *typelabel;
@end

上面這段代碼是.h內的代碼

大家可以稍微了解一下..當然我這邊是建議大家還是去稍微學習下objective-c內容比較好.因為我目前的階段是 只知道 這么寫.這么用的地步.

首先在類名的大括號下面定義 變量

定義的方式跟 C#一樣

 類型   變量名

如果是普通的BOOL  INT等類型  變量名前面是不需要加 *的 

如果是NSSTRING 或者其他類型的就需要在變量名前面加* 也就是

類名 *變量名

下面的 

@property(nonatomic,retain) IBOutlet UILabel *contentlabel;

這邊的語法呢 

我具體的是什么東西已經忘了.反正目前就是按照這個格式寫就對了

同樣的 如果是普通的BOOL  INT等類型  就不需要加retain

否則的話就需要加retain 

retain這邊是做內存管理用的東西

大家想深入了解的就可以去了解下

然后IBOutlet  這句的話就用是 如果有對應的.xib文件的話  同時我們在xib文件里也拖拽了一個相同類型的控件

就可以選擇按住CTRL然后右鍵鏈接的方式 建立關聯.

簡單來講 就用來聲明是否與xib文件中的文件可以關聯,如果關聯的話 就要進行關聯操作.

進行了關聯操作之后.那么在.m文件中.對該變量進行的操作 就會直接影響xib文件中相對應的控件

有點類似於 大家寫.net的時候 在windowfrom里面直接拖拉控件 然后定義了控件名,之后就可以直接在.cs文件里面操作

(xxxlabel.text="XXX")這樣的感覺

而如果不加關聯的話 就類似於在.CS文件中

直接

{

  Label mylabel=new label();

.......;

}

在.h文件中這樣聲明了之后大家就可以在.m文件中進行下一步的聲明了

#import "LookInfoModelCell.h"

@implementation LookInfoModelCell
@synthesize contentlabel;
@synthesize typelabel;

直接 

@synthesize  變量名.
這樣聲明了之后.大家就可以使用類似C#中的.語法來調用該類的該變量了
類似於
LookInfoModelCell.contentlabel=xxx;

 以上就是屬性的定義了.

如果是通過這種方式聲明的話是直接可以 使用.語言來進行屬性的操作的

否則的話就需要 用[類名 set屬性] 的方式來操作.比較麻煩..如果有人非要用這種方式的話 ..請自己查找相關資料學習

 

 

接下來講下方法的聲明 

-(IBAction)loginButtonPressed:(id)sender;

-(IBAction)backgroundTap:(id)sender duration:(NSTimeInterval)duration;

-(void)uidDidEndOnExit;

如果需要允許外部調用的就需要在.h文件中進行聲明 如上.

否則的話可以直接在.m文件里面開始寫方法

- 號和+號分別

加號 是可以通過類名直接調用這個方法,而減號則要實例化逸個對象,然后通過實例化的對象來調用該方法!!

然后括號內是返回類型

如果定義成IBAction的類型就是可以外部鏈接的

就類似我們做.NET的時候 可以在屬性里面 選擇對應操作會執行哪些方法一樣..這個具體的之后會進行(截圖)講解

 

跟着返回類型的是方法名 ,再是參數

OC(objective-c的簡稱,之后都用OC來代替objective-c)的方法定義和C#還是有比較明顯的區別的,具體的是在變量上面

C#中是 

 (返回類型)方法名(參數類型  變量名,參數類型 變量名 ....)
而OC則是

(返回類型) 方法名 :(參數類型)變量名 空格 參數二名 :(參數類型) 變量名 空格 參數三名 :(參數類型) 變量名

個人感覺有點奇葩.

繼續正題吧.

在.h文件中聲明了 方法后就要再.m文件中進行實現了

這部分的代碼就和C#一樣了沒什么需要講解的了

-(IBAction)backgroundTap:(id)sender

{

    [pwdTextFieldresignFirstResponder];

    [uidTextFieldresignFirstResponder];

}

 接下來再講下方法的調用

在C#中 調用方法是直接

類.方法名 (參數)

這樣來調用的

而在oc中則是

 

[類  方法名: 參數 ]

類似於如下

    ZYGXViewController *zygxViewController =[[ZYGXViewControlleralloc]initWithNibName:@"ZYGXViewController"bundle:nil];

 

 該段代碼的意思是

我聲明了一個 ZYGXViewController類型的變量 zygxViewController

初始化方法 方法包含兩個參數 initWithNibName 和bundle

 

另外需要注意的是  如果是調用本身的方法 需要

[self 方法名]

PS:我剛開始沒記住這一點 直接[方法名] 了半天不出來.糾結了好久.然后才想起來要加 self.

開篇就講這么多了.也是中午抽空謝謝的.

第一次寫 可能有很多地方有不足的地方還請見諒

另外小弟也是IOS開發新手.如果內容上有什么錯誤,以及誤導的地方的 還請大家見諒. 最好能留言 告訴小弟.小弟也能及時修改,免得誤人子弟,實乃罪過.

下一章我會直接從登陸界面講起. 簡單的做一些基礎的操作

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM