麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

ISO學(xué)習(xí)筆記2015-03-15

2019-11-14 19:26:55
字體:
供稿:網(wǎng)友
Objective--C 一 關(guān)鍵字@PRoperty 定義變量函數(shù)@synthesize  實(shí)現(xiàn)變量函數(shù)二 函數(shù)alloc 分配內(nèi)存init 初始化new 替代上面兩個(gè)函數(shù) 分配內(nèi)存,并且初始化三 規(guī)則 0 變量的修飾符 @public @protected @private  @package@public    實(shí)例變量可以被在任何地方訪問。@protected 實(shí)例變量能被聲明它的類和子類訪問,所有沒有顯式制定范圍的實(shí)例變量都是@protected的。@private 實(shí)例變量只能被聲明它的類訪問。@package 使用runtime modern,一個(gè)@package實(shí)例變量在實(shí)現(xiàn)這個(gè)類的可執(zhí)行文件鏡像中實(shí)際上是@public的,但是在外面就是@private(runtime請參考蘋果文檔Runtime Programming Guide)。         這個(gè)類型最常用于框架類的實(shí)例變量,使用@private太限制,使用@protected或者@public又太開放。1  類的實(shí)例成員變量(非靜態(tài)變量)賦值/取值 通常可以有三種方式,需要注意的是給字符串賦值時(shí)需要在字符串前加前綴 @ ;還有就是這些變量的訪問只能在非靜態(tài)函數(shù)轉(zhuǎn)中訪問;A 對象.成員變量 @protected @public @private  B 對象->成員變量  @public C [對象 成員變量set/get函數(shù)]  @public @protected @private  2 類的靜態(tài)變量 A Objective-C自身時(shí)不支持靜態(tài)變量的,但是由于ObjectiveC是C語言的超類,所以可以使用C語言的static關(guān)鍵字來創(chuàng)建全局變量,全局變量跟java里的static變量是一樣的,只有在類第一次加載的時(shí)候才初始化,知道程序被銷毀才被釋放掉B 靜態(tài)變量的調(diào)用都必須在靜態(tài)方法中,無論是賦值還是取值 C static靜態(tài)變量還可以在方法內(nèi)定義,只不過在方法內(nèi)定義的static靜態(tài)變量只能在方法內(nèi)調(diào)用,方法外無法調(diào)用。
3 動(dòng)態(tài)函數(shù) A 標(biāo)識(shí)符 - B 調(diào)用方式 [實(shí)例化對象 函數(shù)]C 實(shí)例方法在堆棧上D 不能調(diào)用靜態(tài)函數(shù)4 靜態(tài)函數(shù) A 標(biāo)識(shí)符 +B 調(diào)用方式 [類 函數(shù)]C 靜態(tài)方法在堆上分配內(nèi)存 D 不能調(diào)用非靜態(tài)函數(shù),其實(shí)也不是,假如在.h中沒有定義,是不能調(diào)用的;5 靜態(tài)方法與實(shí)例方法區(qū)分A 靜態(tài)方法常駐內(nèi)存,實(shí)例方法不是,所以靜態(tài)方法效率高但占內(nèi)存。事實(shí)上,方法都是一樣的,在加載時(shí)機(jī)和占用內(nèi)存上,靜態(tài)方法和實(shí)例方法是一樣的,在類型第一次被使用時(shí)加載。調(diào)用的速度基本上沒有差別B 靜態(tài)方法在堆上分配內(nèi)存,實(shí)例方法在堆棧上。事實(shí)上所有的方法都不可能在堆或者堆棧上分配內(nèi)存,方法作為代碼是被加載到特殊的代碼內(nèi)存區(qū)域,這個(gè)內(nèi)存區(qū)域是不可寫的C 實(shí)例方法需要先創(chuàng)建實(shí)例才可以調(diào)用,比較麻煩,靜態(tài)方法不用,比較簡單。D 靜態(tài)方法是靜態(tài)綁定到子類,不是被繼承。E 一般使用頻繁的方法用靜態(tài)方法,用的少的方法用動(dòng)態(tài)的。靜態(tài)的速度快,占內(nèi)存。動(dòng)態(tài)的速度相對慢些,但調(diào)用完后,立即釋放類,可以節(jié)省內(nèi)存,可以根據(jù)自己的需要選擇是用動(dòng)態(tài)方法還是靜態(tài)方法。F 靜態(tài)方法修改的是類的狀態(tài),而對象修改的是各個(gè)對象的狀態(tài),這點(diǎn)也是它們重要的區(qū)別G 類的實(shí)例化調(diào)用是在類的生命周期中存在,當(dāng)類沒有了以后,對應(yīng)的實(shí)例也就沒有了,對應(yīng)的方法也就沒有了,靜態(tài)類不然,只要你引用了那個(gè)靜態(tài)類的命名空間,他就會(huì)一直存在,知道你退出系統(tǒng)。6 alloc/init 與 new A 在實(shí)際開發(fā)中很少會(huì)用到new,一般創(chuàng)建對象咱們看到的全是[[className alloc] init]B 區(qū)別只在于alloc分配內(nèi)存的時(shí)候使用了zone 它是給對象分配內(nèi)存的時(shí)候,把關(guān)聯(lián)的對象分配到一個(gè)相鄰的內(nèi)存區(qū)域內(nèi),以便于調(diào)用時(shí)消耗很少的代價(jià),提升了程序處理速度; C 而為什么不推薦使用new?如果使用new的話,初始化方法被固定死只能調(diào)用init. 而你想調(diào)用initXXX怎么辦?沒門兒D 采用new的方式只能采用默認(rèn)的init方法完成初始化,采用alloc的方式可以用其他定制的初始化方法。 7 @property @synthesize A 作用 簡化屬性變量的SET,GETB 簡單語法語法 B1 @property 數(shù)據(jù)類型 變量名; 在.h 文件中; B2 @synthesize 變量名;C 復(fù)雜語法 C1 如果事先沒有在{}中注冊成員變量 _A,但是用@property定義了成員變量_A,那么系統(tǒng)會(huì)生成成員變量_A,但是該成員變量的是作用域是Private,所以了就不能用 對象->成員變量 來調(diào)用了 這個(gè)更為簡潔 C2 如果事先已經(jīng)在{}中注冊成員變量 _A,而且用@property定義了成員變量_A,那么系統(tǒng)會(huì)使用{}中成員變量_A, 而且必須在.m文件中用@synthesize實(shí)現(xiàn),不然系統(tǒng)會(huì)報(bào)警告, 作用域以{}中的為標(biāo)準(zhǔn),這個(gè)更為傳統(tǒng),嚴(yán)謹(jǐn)D 屬性 聲明property的語法為: @property (參數(shù)) 類型 名字;這里的參數(shù)主要分為三類: 讀寫屬性(readwrite/readonly) setter語意(assign/retain/copy) 原子性atomicity(nonatomic) D1 readwrite 默認(rèn)屬性 有g(shù)et/set方法 D2 readonly 只有g(shù)et方法,沒有set方法 所以它不可以和 copy/retain/assign組合使用 D3 nonatomic atomic和nonatomic用來決定編譯器生成的getter和setter是否為原子操作。在多線程環(huán)境下,原子操作是必要的,否則有可能引起錯(cuò)誤的結(jié)果 I, 當(dāng)一個(gè)變量聲明為nonatomic時(shí),意味著多個(gè)線程可以同時(shí)對其進(jìn)行訪問 II, 當(dāng)一個(gè)變量聲明為nonatomic時(shí),它是非線程安全型,訪問速度快; III, 當(dāng)一個(gè)變量聲明為nonatomic時(shí),當(dāng)兩個(gè)不同的線程對其訪問時(shí),容易失控。 D4 atomicity 默認(rèn)屬性 線程安全原子操作 I,當(dāng)一個(gè)變量聲明為atomic時(shí),意味著在多線程中只能有一個(gè)線程能對它進(jìn)行訪問 II,當(dāng)一個(gè)變量聲明為atomic時(shí),該變量為線程安全型,但是會(huì)影響訪問速度, III 當(dāng)一個(gè)變量聲明為atomic時(shí),在非ARC編譯環(huán)境下,需要設(shè)置訪問鎖來保證對該變量進(jìn)行正確的get/set D5 assign 簡單賦值,不更改索引計(jì)數(shù) 對基礎(chǔ)數(shù)據(jù)類型 (例如NSInteger,CGFloat)和C數(shù)據(jù)類型(int, float, double, char, 等)
            I 用于基本數(shù)據(jù)類型 D6 retain: 與strong相對應(yīng),使用了引用計(jì)數(shù),retain+1,release -1;當(dāng)引用 計(jì)數(shù)為0時(shí),dealloc會(huì)被調(diào)用,內(nèi)存被釋放
            I 通常用于非字符串對象 D7 copy用于非共享內(nèi)存時(shí),每個(gè)指針有自己的內(nèi)存空間
            I 通常用于字符串對象
        

 


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 日本精品二区 | 91精品国产99久久久久久红楼 | gogo全球大胆高清人露出91 | 久久久成人免费视频 | av在线一区二区三区 | 国产91在线亚洲 | 欧美成人一区二区视频 | 久久久久久久久久久国产精品 | www久久国产| 国产乱淫av片免费网站 | 黄网站免费入口 | 国产精品v片在线观看不卡 成人一区二区三区在线 | 性欧美一区二区 | 最新久久免费视频 | 影视免费观看 | av成人免费| 黄色网址免费进入 | 超碰在线97国产 | 日本成人一区二区 | 92精品国产自产在线 | 性视频久久 | 日韩精品中文字幕一区二区三区 | 国产亚洲欧美日韩在线观看不卡 | 欧美精品免费一区二区三区 | 日韩做爰视频免费 | 国产一区二区在线免费播放 | 欧美午夜网 | 久久国产综合精品 | 国产精品6区 | 久久久久se| 黄色的视频免费看 | 黄色日韩网站 | 娇喘视频在线观看 | 一本色道久久久888 国产一国产精品一级毛片 国产精品高潮视频 | 亚洲午夜免费 | 免费观看黄色影片 | 国产精品免费久久久久久 | 国产影院一区 | 国产在线地址 | 高清中文字幕在线 | 亚洲国产精品久久久 |