日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > Objective-c基礎知識學習筆記

Objective-c基礎知識學習筆記

來源:程序員人生   發布時間:2014-09-11 23:02:45 閱讀次數:2680次

Objective-c基礎知識學習筆記(一)

        一直有記錄筆記的習慣,但很久沒分享一些東西了,正好上半年開始學習IOS了,現在有空寫點。因開發需要,公司特意為我們配置了幾臺新MAC,還讓我們自學了2周時間,就正式進入開發了。現在將自己了解的一些基礎知識分享一下。

一、開發工具

        svn管理工具:versions(備注:個人感覺這個工具不是很好用,經常操作緩慢而且卡頓)、開發工具:xcode

 

二、IOS系統架構

        IOS是基于UNIX內核,Android是基于Linux內核。

        IOS的系統架構分為四個層次,從下到上依次是:核心操作系統層(Core OS layer)、核心服務層(Core Services layer)、媒體層(Media layer)和可觸摸層(Cocoa Touch layer)。

        1、Core OS是位于iOS系統架構最下面的一層,是核心操作系統層,它包括內存管理、文件系統、電源管理以及一些其他的操作系統任務,可以直接和硬件設備進行交互。作為app開發者不需要與這一層打交道。

        2、Core Services是核心服務層,可以通過它來訪問iOS的一些服務。

        3、Media是媒體層,通過它我們可以在應用程序中使用各種媒體文件,進行音頻與視頻的錄制,圖形的繪制,以及制作基礎的動畫效果。 

        4、Cocoa Touch是可觸摸層,這一層為我們的應用程序開發提供了各種有用的框架,并且大部分與用戶界面有關,本質上來說它負責用戶在iOS設備上的觸摸交互操作。

 

三、重要后綴說明

        .h后綴的文件指頭文件,描述類、類的數據成分以及類的方法,相當于接口。

        .m后綴的文件是實現文件(源文件)

        .xib后綴文件,是interface builder文件,存放應用程序的用戶界面(UI)

 

四、基礎語法

        Objective c是面向對象的

1、#import(引入頭文件)語法

        eg:#import<Foundation/Foundation.sh>

#import"SelfClass.h"

@classSelfClass

         備注:<>只在系統文件中查找,””先在本地查找,沒找到則到系統文件中查找,import可自動防止同一個文件被導入多次。實例變量類型一般用@class引入,這個可以縮短編譯時間,一般用在interface中,里面的方法和變量不可用。

2、字符串NSString

        @"字符串"

3、BOOL布爾類型

        有YES和NO兩個值,備注:大于0的數不一定是YES

4、控制臺輸出NSLog()

        %@輸出NSString等對象的值

 

五、類的定義與實現

1、@interface用于定義接口類

        接口一般在.h文件(頭文件)中定義,用來展示類的構造。

         Eg:定義基于NSObject類的Circle類

@interfaceCircle :NSObject

{

      ShapeColor *fillColor;

}

-(void) draw;

-(void)setFillColor: (ShapeColor *) fillColor secondName:(int) index;

@end

        1)、大括號內的變量為類的實例變量(只在對象的實例中有效,所以稱為實例變量ivar),后面的為方法聲明。備注:c函數原型中沒有先行短線。

        2)、方法返回類型與C函數有相同的類型:標準類型(整型、浮點型、字符串)、指針、引用對象和結構體,如果方法使用參數則需要冒號,否則不需要冒號。沒有聲明實例變量時,無需大括號。

        3)、上面多參數方法定義,也可以不需要secondName,但不推薦這樣使用。

        4)、有些方法的聲明是先行加號,這樣的方法為類方法(class method),這個方法屬于類對象(而不是類的實例對象),類似于靜態方法,通常用于創建新的實例,我們稱這種用來創建新對象的類方法為工廠方法。

        5)、在對象類型的右邊都有一個*號,所有的對象變量都是指針類型。id類型(任意類型)已經被預定義為指針類型,所以不需要再加一個*

2、@implementation

實現類一般在.m文件(實現文件)中實現,實現了接口所聲明的所有方法。

Eg:上面Circle的實現類

@import “XXX.h”//引入上面定義的頭文件

@implementationCircle

- (void)setFillColor: (ShapeColor *) c

{

      fillColor = c;

}

 

3、對象的實例化

1)、Circle *circle = [Circle new];//不建議這樣使用

2)、Circle *circle = [[Circle alloc]init];//一般這樣初始化

4、方法的調用

[ciclesetFillColor: kRedColor];//備注中間是空格

5、實例變量作用域的指令:

@protected實例變量可被該類及任何子類中定義的方法直接訪問(默認的情況)。

@private實例變量可被定義在該類的方法直接訪問,不能被子類定義的方法直接訪問。

@public實例變量可被該類中定義的方法直接訪問,也可被其他類或模塊中定義的方法訪問。使得其他方法或函數可以通過(->)來訪問實例變量(不推薦用)。

@package 對于64位圖像,可以在實現該類的圖像的任何地方訪問這個實例變量。

6、繼承

@interface Circle: NSObject

        不支持多繼承,但Objective-C通過其它特性達到多繼承的效果,例如類別和協議。

7、復合(composition)

        復合就好像音樂中的作曲一樣:將多個組件組合在一起,配合使用,從而得到完整的作品。嚴格來說,只有對象間的組合才能叫復合。

        復合類之間的關系為“has a”。備注:在Objective-C中,復合是通過包含作為實例變量的對象指針實現的。

Eg:汽車有4個輪胎和一臺發動機。

@interface  Car:NSObject

{

      Engine *engine;

      Tire *tire[4];

}

備注:為新建的Car對象分配內存時,這些指針將被初始化為nil(零值)

 

六、id

id shapes[2];

shapes[0] = [[Circlealloc]init];

shaoes[1] =[ [Egg alloc]init];

它是指向任意類型對象的指針,相當于范型。

 

七、存取方法名命名

1、setter方法需要在屬性名稱前增加set前綴,eg:setEngine

2、getter方法則是以其返回的屬性名稱來命名,eg:engine不要將get用作getter方法的前綴,例如方法getEngine違反了命名慣例,get這個詞在Cocoa中有特殊的含義,如果get出現在Cocoa的方法名中,就意味著這個方法將你傳的參數作為指針來返回數值。

 


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 色综合精品久久久久久久 | 国产三级香港三韩国三级 | 国产精品18久久久久久久网站 | 玖玖久久 | 国产一级免费 | 99在线观看| 欧美伊人| 日韩欧美精品在线视频 | 久久av网站 | 国产三区视频 | 人成福利视频在线观看 | 蜜桃视频一区二区三区在线观看 | 黄色片在线免费观看 | 亚洲黄色片免费观看 | 一区二区三区四区精品 | 国产精品1区2区3区 久久美女性网 | 日韩电影在线 | 明日有晴天 | 欧美福利一区二区 | 可以在线观看av的网站 | 艹逼网| 国产精品久久久久久久一区探花 | 性欧美视频在线观看 | 亚洲伊人av| 欧美精品一区二 | 视频二区在线 | 国产精品视频久久 | 国产97视频 | 亚洲黄色在线视频 | 九九看片 | 国产精品久久福利 | 国产精品一区二区三区久久久 | 欧美日韩18| 亚洲精品在线观看网站 | 成年人在线免费观看 | 亚洲色图在线观看 | 精品在线视频观看 | 欧美日韩国产一区二区在线观看 | 淫男乱女 笨蛋英子 | 精品国产成人 | 久久高清|