Objective-c 快速指南

Objective-c是c語(yǔ)言的超集, 就是objective-c是基礎(chǔ)C語(yǔ)言的基礎(chǔ)上疯兼,增加了擴(kuò)展庫(kù)皇拣,并在gcc上增加對(duì)Objective-c的編譯,這些只是最開始的功能焦影,后來(lái)蘋果公司引入了clang和llvm(底層虛擬機(jī))來(lái)對(duì)Objective-c進(jìn)行編譯執(zhí)行,擴(kuò)展了Objective-c的新特性.

person.h

// .h文件是一個(gè)類的對(duì)外接口申明的文件优俘,其他模塊通過(guò)import "xxx.h"引入诲祸。
#import <Foundation/Foundation.h>
//NSObject是父類
@interface Person: NSObject {

// property是集合setter和getter函數(shù),對(duì)變量"_firstName"處理的封裝,使用方法就是self.firstName
// 屬性 strong,weak, readwrite, copy
@property (屬性) NSString   *firstName;   

// 實(shí)例化方法
- (void)getAge; 

// 類方法
+ (void) fromWhere;
}

// 使用多參數(shù)和返回值
- (NSString *) PhoneNumberOfFriend:(NSString *) friendName;

}

person.m

# import "person.h"

NSString *test1;

// 在.m文件 中可以再次申明
@interface Person()

//  私有實(shí)體變量 protected
NSString *lastName;
@end


@implementation Person
// 私有實(shí)體變量 private
NSString *lastName2浊吏;
- (void)getAge{
    NSLog(@"My age 14");
}
@end 

數(shù)據(jù)類型

巧婦難為無(wú)米之炊, 數(shù)據(jù)就是我們需要處理的對(duì)象

int   整型
char 字符型
NSInteger  整型對(duì)象與int區(qū)別
NSUInteger 無(wú)符號(hào)整型對(duì)象
NSRange  獲取位置信息struct (location, length)一般用于字符串定位
NSString 字符串類型
NSMutableString  可修改的字符串類型
NSNumber  (整形,浮點(diǎn)型救氯,布爾類型, 字符轉(zhuǎn)為數(shù)字類型)
NSValue  集合中存放的為對(duì)象找田,一些結(jié)構(gòu)體可以轉(zhuǎn)化為NSValue對(duì)象進(jìn)行存儲(chǔ),并且需要使用的時(shí)候可以轉(zhuǎn)化為原來(lái)的結(jié)構(gòu)着憨。
集合分為:
NSArray:  @[xx,xx]
NSDictionary:@{xx:xx}
NSSet,NSMutableArray等
常見的基本類型將填充到集合中

塊的使用

塊可以理解為一個(gè)匿名的閉包函數(shù),類似于python的lambada表達(dá)式

// 先申明后定義
(double) (^mulToValue)(double, double);
 mulToValue = ^ double (double x, double y){
         return  x * y;
   };
// 直接定義
(double) (^mulToValue)(double, double)= ^  (double x, double y){
         return  x * y;
 };

// 關(guān)于塊中變量的作用空間
(void)testMethod (){
    int anInteger = 42;
 
    void (^testBlock)(void) = ^{
        NSLog(@"Integer is: %i", anInteger);
    };
  anInteger = 55;
    testBlock();
}
// 實(shí)際執(zhí)行墩衙,顯示42,因?yàn)閍ninteger變量最終的數(shù)值是55

// 如果想要在塊內(nèi)部修改塊外部的變量就應(yīng)該如此聲明變量
__block int anInteger = 42;

//    塊作為參數(shù)傳遞
+(double) testBlock:(double(^)(double x, double y))mulFunc;

// 類方法定義
+(double)testBlock:(double (^)(double, double))mulFunc{
    return mulFunc(6,7);
}

// 塊使用
double result = [Person testBlock:^double(double x, double y) {
            return x*y;
        }];

協(xié)議

假設(shè)A為B提供服務(wù), 但是B要遵守A制定的協(xié)議,A才能完成幫助其完成.

阿拉丁神燈能夠滿足他主人的愿望,但是這個(gè)主人需要滿足阿拉丁制定的協(xié)議,總共只有三次機(jī)會(huì),每次都要說(shuō)出愿望(當(dāng)然不能是在給三次機(jī)會(huì)啦)

// 定義協(xié)議,可以申明類或者實(shí)例的方法,并且協(xié)議之間也可以進(jìn)行集成
// 這個(gè)協(xié)議申明在.h文件中
@protocol   Love<協(xié)議繼承>
// 申明方法
- (NSString *) sayGIrlFriend;

@end

// Man服務(wù)的提供者
@interface Man 

// 在某個(gè)方法中,會(huì)調(diào)用[self.delegate SayGirlFriend]
@property (nonatomic, weak) id<Love> delegate;

@end

// 遵守協(xié)議
@interface  SuperMan:NSObject <Love>

@end

@implementation SuperMan

// 完成協(xié)議,在某個(gè)方法中self.man.delegate = self完成協(xié)議指向
- (NSString *) sayGIrlFriend{
        return @"I Love U!";
}

@end

分類

category 是對(duì)已經(jīng)存在的類增加新的方法, 并提出一個(gè)分類的類甲抖,來(lái)申明和實(shí)現(xiàn)此方法.用分類可以分離部分函數(shù)的實(shí)現(xiàn)漆改。

#import "XYZPerson.h"
 
@interface XYZPerson (XYZPersonNameDisplayAdditions)
- (NSString *)lastNameFirstNameString;
@end
--------------------------------------
#import "XYZPerson+XYZPersonNameDisplayAdditions.h"

@implementation XYZPerson (XYZPersonNameDisplayAdditions)
- (NSString *)lastNameFirstNameString {
    return [NSString stringWithFormat:@"%@, %@", self.lastName, self.firstName];
}
@end
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市准谚,隨后出現(xiàn)的幾起案子挫剑,更是在濱河造成了極大的恐慌,老刑警劉巖柱衔,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件樊破,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡唆铐,警方通過(guò)查閱死者的電腦和手機(jī)哲戚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)艾岂,“玉大人惫恼,你說(shuō)我怎么就攤上這事“难危” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵令宿,是天一觀的道長(zhǎng)叼耙。 經(jīng)常有香客問(wèn)我,道長(zhǎng)粒没,這世上最難降的妖魔是什么筛婉? 我笑而不...
    開封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上爽撒,老公的妹妹穿的比我還像新娘入蛆。我一直安慰自己,他們只是感情好硕勿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開白布哨毁。 她就那樣靜靜地躺著,像睡著了一般源武。 火紅的嫁衣襯著肌膚如雪扼褪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天粱栖,我揣著相機(jī)與錄音话浇,去河邊找鬼。 笑死闹究,一個(gè)胖子當(dāng)著我的面吹牛幔崖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播渣淤,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼赏寇,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了砂代?” 一聲冷哼從身側(cè)響起蹋订,我...
    開封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎刻伊,沒(méi)想到半個(gè)月后露戒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡捶箱,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年智什,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片丁屎。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡荠锭,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出晨川,到底是詐尸還是另有隱情证九,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布共虑,位于F島的核電站愧怜,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏妈拌。R本人自食惡果不足惜拥坛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧猜惋,春花似錦丸氛、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至梨撞,卻和暖如春雹洗,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背卧波。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工时肿, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人港粱。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓螃成,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親查坪。 傳聞我的和親對(duì)象是個(gè)殘疾皇子寸宏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Objective-C[編輯]維基百科,自由的百科全書 Objective-C編程范型面向?qū)ο?設(shè)計(jì)者布萊德·考克...
    半片殘楓閱讀 1,576評(píng)論 0 6
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,103評(píng)論 1 32
  • 翻譯自蘋果官方文檔 和Objective-C交互 互用性是指偿曙,在Swift和Objective-C之間可以建立一個(gè)...
    桔子聽閱讀 10,219評(píng)論 0 34
  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時(shí)...
    歐辰_OSR閱讀 29,392評(píng)論 8 265
  • 終于讀完了氮凝,這好像是畢業(yè)后繼《簡(jiǎn)愛》僅讀完的第二本書,書里沒(méi)有風(fēng)花雪月望忆、纏綿悱惻的愛情故事罩阵,也沒(méi)有跌宕起伏、扣人心...
    書影成邪閱讀 82評(píng)論 0 0