成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解Objective_C擴(kuò)展機(jī)制學(xué)習(xí)

移動(dòng)開(kāi)發(fā) iOS
Objective_C比c/c++更強(qiáng)大,因?yàn)樗艘恍┰O(shè)計(jì)模式在里面。聽(tīng)說(shuō)java里幾乎包括了所有的設(shè)計(jì)模式,不過(guò)我沒(méi)有深入用過(guò)java,曾經(jīng)用過(guò)j2me寫(xiě)過(guò)一點(diǎn)點(diǎn)邏輯。

Objective_C擴(kuò)展機(jī)制學(xué)習(xí)是本文要介紹的內(nèi)容,學(xué)Objective_C已有一年時(shí)間了,開(kāi)發(fā)iphone也有一年時(shí)間了。首先學(xué)習(xí)Objective_C的時(shí)候,是賃著c/c++的基礎(chǔ),所學(xué)的知識(shí)是按c/c++的方式去學(xué)習(xí),其實(shí)Objective_C是 C 的超集當(dāng)時(shí)一點(diǎn)也沒(méi)體會(huì)到,其精髓也是完全沒(méi)有理解到。隨關(guān)時(shí)間的推移,慢慢了解更多。

Objective_Cc/c++更強(qiáng)大,因?yàn)樗艘恍┰O(shè)計(jì)模式在里面。聽(tīng)說(shuō)java里幾乎包括了所有的設(shè)計(jì)模式,不過(guò)我沒(méi)有深入用過(guò)java,曾經(jīng)用過(guò)j2me寫(xiě)過(guò)一點(diǎn)點(diǎn)邏輯。用Objective_C最靈活的兩 點(diǎn)就是:category與associative.  我把他們歸為Objective_C的擴(kuò)展機(jī)制。category可以擴(kuò)展一個(gè)類(lèi)的方法,associative可以擴(kuò)展一個(gè)類(lèi)的屬性。 這兩種方法加起來(lái)其功能完全等效于c++中的繼承。

下面看一個(gè)associative的列子,需要的頭文件是:

  1. #import <objc/runtime.h> 
  2.  
  3. static char overviewKey = 'a';    
  4. NSArray *array = [[NSArray alloc] initWithObjects:@ "One", @"Two", @"Three", nil];    
  5. // For the purposes of illustration, use initWithFormat: to ensure      
  6. // we get a deallocatable string      
  7. NSString *overview = [[NSString alloc] initWithFormat:@"%@", @"First three numbers"];    
  8. objc_setAssociatedObject ( array, &overviewKey, overview, OBJC_ASSOCIATION_RETAIN);     
  9. [overview release];    
  10. NSString *associatedObject = (NSString *) objc_getAssociatedObject (array, &overviewKey);    
  11. NSLog(@"associatedObject: %@", associatedObject);    
  12. objc_setAssociatedObject ( array, &overviewKey, nil, OBJC_ASSOCIATION_ASSIGN );     
  13. [array release];    
  14.  static char overviewKey = 'a';  
  15.  NSArray *array = [[NSArray alloc] initWithObjects:@ "One", @"Two", @"Three", nil];  
  16.  // For the purposes of illustration, use initWithFormat: to ensure   
  17.  // we get a deallocatable string   
  18.  NSString *overview = [[NSString alloc] initWithFormat:@"%@", @"First three numbers"];  
  19.  objc_setAssociatedObject ( array, &overviewKey, overview, OBJC_ASSOCIATION_RETAIN);   
  20.  [overview release];  
  21.  NSString *associatedObject = (NSString *) objc_getAssociatedObject (array, &overviewKey);  
  22.  NSLog(@"associatedObject: %@", associatedObject);  
  23.  objc_setAssociatedObject ( array, &overviewKey, nil, OBJC_ASSOCIATION_ASSIGN );   
  24.  [array release]; 

objc_setAssociatedObject給array增加了一個(gè)屬性,我們可以通過(guò)key獲取這個(gè)屬性,見(jiàn)上面代碼:objc_getAssociatedObject, 第二個(gè)objc_setAssociatedObject設(shè)為nil,則是刪除這個(gè)屬性。

這兒還有一個(gè)例子:http://oleb.net/blog/2011/05/faking-ivars-in-objc-categories-with-associative-references/關(guān)于category,大家就google一下吧。

小結(jié):詳解Objective_C擴(kuò)展機(jī)制學(xué)習(xí)的內(nèi)容介紹完了,希望通過(guò)本文的學(xué)習(xí)對(duì)你有所幫助!

責(zé)任編輯:zhaolei 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-08-16 10:35:59

Objective_C私有方法

2011-08-04 10:57:33

Objective-C C語(yǔ)言 BOOL

2011-08-04 18:14:42

Objective-C 消息

2011-08-16 10:23:04

Objective-CNSAutoreleaXcode常用鍵

2011-07-27 16:36:03

iphone Objective- 靜態(tài)庫(kù)

2011-08-04 11:04:14

Objective-C 面向?qū)ο? 繼承

2011-08-04 10:38:17

Objective-C 預(yù)處理程序

2011-07-29 16:16:30

Objective-c block

2011-08-17 10:58:59

Objective-C構(gòu)造函數(shù)

2011-08-18 13:28:35

Objective-C內(nèi)存

2011-05-11 14:06:49

Objective-C

2011-08-04 14:58:37

Objective-C Cocoa NSString

2013-08-21 14:57:42

objective-c問(wèn)題

2015-10-08 10:01:10

Objective-CLayout

2011-07-18 16:36:51

Objective-C XCode

2014-04-01 10:50:42

iOS開(kāi)發(fā)runtimeObjective-C

2011-08-17 10:29:39

Objective-C預(yù)處理

2011-08-04 13:38:01

Objective-C C++

2010-07-07 18:34:43

UML公共機(jī)制

2011-07-27 16:55:12

Objective-c 閉包
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 97超碰免费 | 亚洲一级视频在线 | 国产 欧美 日韩 一区 | 国产精品国产精品国产专区不卡 | 粉色午夜视频 | 中文精品一区二区 | 欧美一级片在线观看 | 国产精品成人在线 | 色婷婷国产精品 | 欧美精品成人影院 | 日韩免费看片 | 免费在线一区二区 | 欧美精品一区二区三区四区五区 | 91久久久久久 | 国产精品成av人在线视午夜片 | 狠狠操操 | 黄色一级大片在线观看 | 日韩一区精品 | 精品一区久久 | 日韩一区二区三区在线播放 | 国产乱码精品一区二区三区五月婷 | 日韩久久久久久 | 一级毛片视频 | 免费午夜剧场 | 久久久久久久久久久久久久av | 午夜亚洲| 中文字幕免费 | 欧美精品久久久久 | av首页在线| 羞羞视频在线观看 | 一区二区不卡 | 日本色高清 | 精精国产视频 | 国产免费福利 | 黄色毛片视频 | 老头搡老女人毛片视频在线看 | 伊人伊人 | 日韩羞羞 | 国产在线观看不卡一区二区三区 | 久久av综合 | 一区二区三区国产 |