写一个setter方法用于完成@property (nonatomic,retain)NSString *room

// 当A对象想使用B对象一定要对B对象进行一次retain, 这样才能保证A对象存在B对象就存在, 也就是说这样才能保证无论在什么时候在A对象中都可以使用B对象
// 当A对象释放的时候, 一定要对B对应进行一次release, 这样才能保证A对象释放了, B对应也会随之释放, 避免内存泄露
// 总结一句话: 有增就有减

  • (void)setRoom:(Room *)room // room = r
    {
    // 只有房间不同才需用release和retain
    if (_room != room) {// 0ffe1 != 0ffe1

      // 将以前的房间释放掉 -1
      [_room release];
      
      /*
      // 对房间的引用计数器+1
      [room retain];
      
      _room = room;
       */
      // retain不仅仅会对引用计数器+1, 而且还会返回当前对象
      _room = [room retain];
    

    }
    }

你可能感兴趣的:(写一个setter方法用于完成@property (nonatomic,retain)NSString *room)