標籤:style blog io color ar os 使用 sp 檔案
一:物件導向的思想 objective-c與C語言的編程思想不同,C語言是面向過程的編程,而objective-c則是物件導向的編程,所謂物件導向,我個人的理解,就是抽象、將具有一定共同點的實物抽象成一個個類,對其進行封裝,繼承,對實物本身進行操作。 二:Objective-C的曆史 objective-c是以SmallTalk為基礎,建立在C語言之上,併兼容c與c++的一門程式設計語言。20世紀80年代早期由 Brad J.Cox設計,2007年蘋果公司發布了objective-c 2.0,並在iPhone上開始使用objective-c進行開發。 三:Objective-C架構 Objective-c編程中主要用到的架構是Cocoa,它是MacOS X中五大API之一,它由兩個不同的架構組成FoundationKit 和ApplicationKit。Foundation是最基本的架構,其中有很多經常用到的、面向資料的低級類和資料類型,如NSString,NSArray,NSDictionary和NSNumber。而iphone手機應用開發 則還會用到UIKitk架構,這會在以後介紹到。四:Objective-C副檔名 OC是C和SmallTalk的結合,它支援相同的C語言基本文法。與C一樣,檔案分為標頭檔和源檔案,副檔名分別為.h和.m。 .h 標頭檔 標頭檔包涵類的定義、類型、函數以及常量的聲明等; .m 源檔案 這個典型的副檔名用來定義源檔案,可以同時包含C和Objective-C的代碼。五:標頭檔引入 #import 在Objective-C裡,包含標頭檔有比#include更好的方法 #import。它的使用和#include相同,但是可以保證你的程式只包含相同的標頭檔一次。例如 引入UIKit架構
#import <UIKit/UIKit.h>
六:標準輸出函數 NSLog() 在Objective-C中用的列印函數是NSLog(), 當然也可以用printf(),但是NSLog()提供了一些特性,如時間戳記,日期戳和自動加分行符號等,用起來更方便,所以NSLog()用起來會更加的方便。例如:
NSLog(@"Hello world");
七:類方法,執行個體方法 Objective-c 的方法定義包含了方法類型,傳回型別,一個或者多個關鍵詞,參數類型和參數名。而且Objective-c中方法有兩種類型:執行個體方法,類方法。執行個體方法前用“-”號表明,類方法用“+”表明,執行個體方法需要用類的執行個體對象調用,類方法則只能由類名調用 下面是類方法和執行個體方法的舉例:
-(void)setCC:(NSString*)c; //執行個體方法+(void)setCC:(NSString*)c;//類方法
八.變數的屬性 變數的屬性提供了比方法更方便的訪問方式。通過@property標識符來替代getter和setter方法。使用方法就是在類介面.h檔案中用@property標識符,後面跟著變數的屬性,包括 copy, tetain, assign ,readonly , readwrite,nonatomic,然後是變數名 然後在實現檔案.m中使用@synthesize 加變數名實現 格式如下聲明property的文法為: @property (屬性1,屬性2) 類型 名字;
//.h
@property BOOL flag;@property (nonatomic) NSString* name;
//.m
@synthesize flag,name;
各參數意義如下:readwrite 產生setter\getter方法readonly 只產生簡單的getter,沒有setter。assign 預設類型,setter方法直接賦值,而不進行retain操作retain setter方法對參數進行release舊值,再retain新值。copy setter方法進行Copy操作,與retain一樣nonatomic 禁止多線程,變數保護,提高效能屬性的另一個好處就是,可以使用點"."文法來訪問 九:對象初始化 OC對象的初始化有兩種方法:一種是[類名 new], 第二種是[[類名 alloc]init]。這兩種方法是等價的,不過,通常的Cocoa慣例是使用alloc和init,而不使用new.一般情況下,Cocoa程式員只是在他們不具備足夠的水平來熟練使用alloc和init方法時,才將new作為輔助方法使用。 [[類名alloc]init]有兩個動作。alloc是分配記憶體,是從作業系統獲得一塊記憶體並將其指定為存放對象的執行個體變數的位置。同時,alloc方法還將這塊記憶體地區全部初始化為0。與分配動作對應的是初始化。 自訂初始化方法 格式如下:
-(id)init{ if(self = [super init]){ // … //code there }
return self;}
使用self= [super init]的作用是使父類完成它們自己的初始化工作。這在以後會介紹。
十:選取器selector 選取器只是一個方法名稱,它以OC運行時使用的特殊方式編碼,以快速執行查詢。你可以使用@selector()先行編譯指令指定選取器,其中方法名位於圓括弧中。如一個類中setCC:方法的選取器是:@selector(setCC:)。待續...
ios開發入門篇(二):Objective-C的簡單文法介紹