自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

iPhone應(yīng)用學(xué)習(xí)筆記之對象初始化

移動開發(fā) iOS
iPhone學(xué)習(xí)筆記中對象的初始化是本文要介紹的內(nèi)容,主要是來學(xué)習(xí)一下對象初始化的內(nèi)容,來看詳細內(nèi)容。為方便學(xué)習(xí),附有代碼!

iPhone應(yīng)用學(xué)習(xí)筆記中對象的初始化是本文要介紹的內(nèi)容,主要是來學(xué)習(xí)一下對象初始化的內(nèi)容,來看詳細內(nèi)容。為方便學(xué)習(xí),附有代碼!

1、關(guān)于  self = [super init]

最先運行的代碼是[super init],其作用是使超類完成它們自己的初始化工作。從根類NSObject繼承的類調(diào)用超類的初始化方法,可以使NSObject執(zhí)行所需的任何操作,以便對象能夠響應(yīng)消息并處理保留計數(shù)器。而從其他類繼承的類調(diào)用超類的初始化方法,可以使子類有機會實現(xiàn)自己全新的初始化。

實例變量所在的內(nèi)存位置到隱藏的self參數(shù)之間的距離是固定的,如果從init方法返回一個新對象,而需要更新self,以便其后的任何實例變量的引用可以唄映射到正確的內(nèi)存位置,這也是我們需要使用self = [super init]這種形式進行賦值的原因。

這個賦值操作值影響給init方法中self的值,而不影響該方法范圍以外的任何內(nèi)容。

2、有關(guān)便利初始化函數(shù)

許多類包含便利初始化函數(shù),他們用來完成某些額外工作的初始化方法。

NSString類:

  1. -(id) init; 

以上方法初始化一個新的空字符串,對于不可變的NSString類來說,這個方法沒有多大用處。但是,你可以分配和初始化一個新的NSMutableString類的對象并開始向該對象中保存字符,你可以使用下面這樣使用此對象:

  1. NSString *emptyString = [[NSString alloc] init]; 

上面的代碼返回一個空字符串

當(dāng)然,你也可以接受格式化的字符串并輸出格式化的結(jié)果一樣。

  1. string  = [[NSString alloc] initWithFormat:@"%d or %d", 25, 624]; 

上面的代碼返回一個字符串,其值為“25 or 624”;

更強大的是,你可以打開指定路徑上的文本文件,讀取文件內(nèi)容太,并使用文件內(nèi)容初始化一個字符串。

  1. string  = [[NSString alloc] initWithContentsOfFile: @"words.txt"]; 

創(chuàng)建NSMutableArray數(shù)組,有一個很簡便的方法replaceObjectAtIndex:withObject,該方法最適合用來實現(xiàn)setTire:atIndex.

要使用replaceObjectAtIndex:withObject:方法,在指定的索引位置必須存在一個能夠被替代的對象。

新的NSMutableArray數(shù)組不包含任何內(nèi)容,因此需要使用一些對象作為占位符,NSNull類的對象非常適合完成此項工作,因此,我們在數(shù)組中添加4個NSNull對象

附上Tire.m的代碼:

  1. #import "Tire.h"  
  2. @implementation Tire  
  3. - (id) init  
  4. {  
  5. if (self = [self initWithPressure: 34  
  6. treadDepth: 20]) {  
  7. }  
  8. return (self);  
  9. } // init  
  10. - (id) initWithPressure: (float) p  
  11. {  
  12. if (self = [self initWithPressure: p  
  13. treadDepth: 20.0]) {  
  14. }  
  15. return (self);  
  16. } // initWithPressure  
  17. - (id) initWithTreadDepth: (float) td  
  18. {  
  19. if (self = [self initWithPressure: 34.0  
  20. treadDepth: td]) {  
  21. }  
  22. return (self);  
  23. } // initWithTreadDepth  
  24. - (id) initWithPressure: (float) p  
  25. treadDepth: (float) td  
  26. {  
  27. if (self = [super init]) {  
  28. ppressure = p;  
  29. treadDepth = td;  
  30. }  
  31. return (self);  
  32. } // initWithPressure:treadDepth:  
  33. - (void) setPressure: (float) p  
  34. {  
  35. ppressure = p;  
  36. } // setPressure  
  37. - (float) pressure  
  38. {  
  39. return (pressure);  
  40. } // pressure  
  41. - (void) setTreadDepth: (float) td  
  42. {  
  43. treadDepth = td;  
  44. } // setTreadDepth  
  45. - (float) treadDepth  
  46. {  
  47. return (treadDepth);  
  48. } // treadDepth  
  49. - (NSString *) description  
  50. {  
  51. NSString *desc;  
  52. desc = [NSString stringWithFormat:  
  53. @"Tire: Pressure: %.1f TreadDepth: %.1f",  
  54. pressure, treadDepth];  
  55. return (desc);  
  56. } // description  
  57. @end // Tire 

小結(jié):iPhone應(yīng)用學(xué)習(xí)筆記之對象初始化的內(nèi)容介紹完了,希望本文對你有所幫助!

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

2011-08-02 15:47:28

Cocos2D Animation

2009-12-16 14:04:04

Ruby對象初始化

2009-07-31 17:51:27

C#對象初始化

2011-06-17 15:29:44

C#對象初始化器集合初始化器

2011-08-09 17:29:29

iPhone文件屏幕

2012-05-23 12:46:53

JavaJava類

2009-08-27 10:31:39

C#對象初始化器

2009-08-14 17:52:27

C#對象初始化

2011-08-08 14:57:46

iPhone Autoreleas Property

2009-11-18 17:53:18

PHP數(shù)組初始化

2011-07-07 15:13:42

PHP

2012-02-28 10:04:09

Java

2009-08-26 15:28:52

C#對象集合初始化器

2023-11-12 23:08:17

C++初始化

2011-08-11 17:15:54

iPhone歸檔

2009-08-12 17:43:54

雙括弧Java語法技巧

2011-08-16 14:54:12

iphone開發(fā)APP

2023-11-29 08:49:31

Vue.jsData 函數(shù)

2011-03-08 16:30:24

Proftpd

2012-12-28 14:53:34

Android開發(fā)初始化窗體事件
點贊
收藏

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