成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

關(guān)于Objective-C的self的用法總結(jié)

2011-02-24 17:40:30來源:作者:

  這里自己再進(jìn)行編輯下,希望日后能看得更清楚些,也希望看原貼不是太清楚的同鞋,能看了我的理解,有更多了解:

  這里自己再進(jìn)行編輯下,希望日后能看得更清楚些,也希望看原貼不是太清楚的同鞋,能看了我的理解,有更多了解:

  MyObject文件:
  代碼
  /*MyObject*/
  //MyObject.h
  @interface MyObject : NSObject {}
  @end
  //MyObject.M
  @implementation MyObject
  @end

  MyClass文件:
  代碼
  /*MyClass*/
  //MyClass.h
  @interface MyClass : NSObject {
  @public
  MyObject * _myObject;
  }
  @property (nonatomic, retain) MyObject *myObject;
  @end
  //MyClass.m
  @implementation MyClass
  @synthesize myObject = _myObject;
  -(id)init{
  if(self = [super init]){
  MyObject * aMyObject = [[MyObject alloc] init]; //aMyObject retainCount = 1;
  NSLog(@"1:aMyobject:%d",[aMyObject retainCount]);
  self.myObject = aMyObject; //myObject retainCount = 2;
  NSLog(@"2:aMyobject:%d",[aMyObject retainCount]);
  [aMyObject release];//myObject retainCount = 1;
  NSLog(@"3:aMyobject:%d",[aMyObject retainCount]);
  _myObject = [[MyObject alloc] init];
  NSLog(@"21:aMyobject:%d",[_myObject retainCount]);
  self.myObject = [[MyObject alloc] init];
  NSLog(@"22:aMyobject:%d",[_myObject retainCount]);
  }
  return self;
  }

  測(cè)試代碼:
  代碼
  /*對(duì)象引用對(duì)象時(shí),使用存取方法和使用對(duì)象屬性的區(qū)別*/
  MyClass* class = [[MyClass alloc] init];
  class.myObject = [[MyObject alloc] init];
  NSLog(@"31: '.' class object count %d", [class.myObject retainCount] );
  class->_myObject = [[MyObject alloc] init];
  NSLog(@"32: '->' class object count %d", [class.myObject retainCount] );

  所有輸出結(jié)果:
  代碼
  2010-10-19 11:30:28.910 Test[1293:207] 1:aMyobject:1
  2010-10-19 11:30:28.910 Test[1293:207] 2:aMyobject:2
  2010-10-19 11:30:28.911 Test[1293:207] 3:aMyobject:1
  2010-10-19 11:30:28.911 Test[1293:207] 21:aMyobject:1
  2010-10-19 11:30:28.912 Test[1293:207] 22:aMyobject:2
  2010-10-19 11:30:28.912 Test[1293:207] 31: '.' class object count 2
  2010-10-19 11:30:28.913 Test[1293:207] 32: '->' class object count 1

  結(jié)論:
  不使用self.則直接使用類屬性,賦值操作。
  使用self.引用屬性,使用@property定義的存取操作,可以使用@synthesize 自動(dòng)實(shí)現(xiàn)存取操作的細(xì)節(jié)
  要使用某類對(duì)象的其中類的某個(gè)屬性時(shí),如上的MyClass使用MyObject中的_myObject屬性時(shí),只有_myObject為@public修飾,且使用"->"操作符時(shí),才是對(duì)象屬性的使用,其他情況一般都是使用了存取操作。
 

關(guān)鍵詞:iOSObjective-C

贊助商鏈接:

主站蜘蛛池模板: 犍为县| 光山县| 长垣县| 常德市| 光泽县| 襄樊市| 枞阳县| 中西区| 莆田市| 昂仁县| 大港区| 民县| 甘德县| 长沙县| 修武县| 深水埗区| 青州市| 海林市| 裕民县| 华蓥市| 东乌珠穆沁旗| 苏州市| 德庆县| 遂宁市| 黎城县| 开阳县| 社旗县| 浪卡子县| 连城县| 稷山县| 广平县| 土默特右旗| 康乐县| 专栏| 同江市| 武汉市| 高雄县| 德昌县| 肥西县| 石景山区| 寻乌县|