A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 韩三少 中级黑马   /  2015-11-11 00:16  /  530 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

9.字典
  NSMutableDictionary: NSDictionary
  initWithObjectsAndKeys:
  // 字典中的成员称为键值对, @"One"和@"1"组成一个键值对, @"One"称为值(Value), @"1"称为键(Key);
  // 键和值都是任意对象, 不过, 键往往使用字符串, 字典里装的只是键和值的地址, 值可以重复, 但是键不能重复, 为同一个key设置value时, 将会替换掉原始的value
  // 字典中的键值对没有顺序, 没有第一个第二个之说, 和数组不一样, 结构上也是链表
  ObjectForKey        // 可以迅速通过key来找到一个值(value)
  count            // 键值对的个数
  枚举法遍历有两种, 通过键枚举遍历(keyEnumerator), 通过值枚举遍历[objectEnumerator], 快速枚举法, 遍历到的是键,
  setObject: forKey:   
  removeObjectForKey

10.setter, getter, @property
  在setter, getter中, 可以使用.运算符, 如果是赋值, 是使用set方法, 如果是使用私有变量, 是使用get方法
  @property (readonly)    // 表示只创建get方法, 不创建set方法, 没有write only
  (atomic)    // 原子操作, 有这个参数时, 在这个线程运行结束之前, 不允许其他线程使用我已用的资源, 正常情况下, 线程是可以使用同一个资源, 并且多个线程间可以交替的运行
  (nonatomic)    // 不必原子操作, 默认是原子操作的, 因此有时会加这个参数
  @property (getter = OtherName) int name; // 修改默认的getter名字name为OtherName, 使用的时候可以同时使用这两个名字
  @property (setter = setOther:)       // setter后面必须有冒号;
  (assign) 和 (readwrite) 都是默认的属性, 不需要写, 有时写上assign, 表示其他属性都不需要, 而不是忘记写了其他属性
  // 如:@property NSString * name; 这时会有错误, 写成@property (assign) NSString * name; 就没有错误了
  // 多个属性之间, 使用逗号隔开
  (copy)  (retain)    // 这样声明对象的时候, 要在dealloc中加入release.
  // NSString使用copy, 其他的对象都用retain, 基本数据类型都是默认的assign

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马