您的位置:首页 > 其它

6.Foundation Kit介绍 部分二

2016-01-19 23:08 281 查看
1.可变性
   使用类方法stringWithCapacity:来创建一个新的NSMutableString,声明如下:
   +(id) stringWithCapacity:(NSUInteger) capacity;
   这个容量只是给NSMutableString一个建议,可以超过其大小。
  例:
  NSMutableString *string = [NSMutableString stringWithCapacity:42];
  一种常见的操作是通过appendString:或appendFormat:来附加新字符串,如下所示。
  - (void) appendString:(NSString *)  aString;
  - (void) appendFormat:(NSString *) format,...;
  appendString:接受参数aString,然后将其复制到接受对象的末尾。appendFormat:的工作方式与stringWithFormat:类似,但并没有创建新的字符串,而是将格式化的字符串附加在了接受字符串的末尾。例如:
  NSMutableString *string = [NSMutableString stringWithCapacity:50];
  [string appendString:@"Hello there"];
  [string appendFormat:@"human %d!",39];
 这段代码最后的结果是string被赋值为“Hello here human 39!”。
 使用deleteCharactersInRange:方法删除字符串中的字符。
   - (void) deleteCharactersInRange:(NSRange) aRange;
  NSMutableString是NSString的子类。
  例:
  假设你列出了所有朋友的名字,但又觉得不喜欢Jacker了,想把他从列表中删除,如下
   NSMutableString *friends = [NSMutableString stringWithCapacity:50];
   [friends appendString:@"James BethLynn Jack Evan"];
   接下来找到Jack的名字在字符串中的范围
   NSRange jackRange = [friends rangOfString:@"Jackk"];
   jackeRange.length++;//eat the space that follows
   踢掉Jack
   [friends deleteCharactersInRange: JackRange];
   NSMutableString继承自NSString的字符格式化来创建一个可变字符串:
   NSMutableString *string = [NSMutableString stringWithFormat:@“jo%dy,2”];
    string的初始值为jo2y
 2.集合大家族
   2.1NSArry
    NSArry类有两个限制。首先,它只能存储Objective-C的对象,而不能存储原始的C语言基础数据类型,如int、float、enum、struct和NSArray中的随即指针。同时,你也不能再NSArray中存储nil(对象的零值或NULL值)。
    可以通过类方法arrayWithObjects:创建一个新的NSArray。发送一个以逗号分隔的对象列表,在列表结尾添加nil代表列表结束。
      NSArray *array = [NSArray arrayWithObjects:@"one",@"two",@"three",nil];
    这行代码创建了一个由NSString字面量对象组成的3个元素的数组。
    也可以使用数组字面量格式来创建一个数组,它与NSString字面量格式非常类似,区别是用方括号代替了引号,如下所示。
     NSArry *array2 = @[@"one",@"two",@"three"];
     - (NSUInteger) cuont;//获取数组所包含的对象个数
     - (id)objectAtIndex:(NSUInteger)index;//通过字面量访问数组的语法与C语言中访问数组项的语法类似。
   2.2可变数组
      NSMutableArray通过类方法arraywWithCapacity来创建新的可变数组:
      +(id) arrayWithCapacity:(NSUInteger) nuItems;
      例:
      NSMutableArrray *array = [NSMutableArray arrayWithCapacity: 17];
      使用addObject:在数组末尾添加对象:
      - (void) addObject: (id) anObject;
      删除特定索引处的对象。
      - (void) removeObjectAtIndex: (NSUInteger) index;
   2.3枚举
      使用NSEnumerator,需通过objectEnumerator向数组请求枚举器:
      - (NSEnumetator *) objectEnumerator;
       使用这个方法:
      NSEnumerator *enumerator = [array objectEnumerator];  
   2.4快速枚举
      for(NSStrin *string in array)
{
NSLog(@"I found %@",string);
}
       为了支持代码块功能,苹果公司添加了一个能在NSArray中通过代码块枚举对象的方法,如下,
      - (void) enumerateObjectsUsingBlock:(void(∧)(id obj,NSUInteger idx,BOOL *stop))block
    3.NSDictionary
      字典(dictioonary)是关键字及其定义的集合。NSDictiongary能在给定的关键字(通常是一个NSString字符串)下存储一个数值(可以是任何类型的Objective-C对象),然后可以用这个关键字来查找相应的数据。
    学习字典的最简单的方法就是用字典字面量语法,它与类方法dictionaryWihtObjectsAndKeys:非常类似。
    字面量语法即使用类似@{key:value,...}的方法来定义。需要注意它使用的是大括号而不是方括号。还要注意dictionaryWithObjectsAndKeys:后面的参数先是要存储的对象,然后才是关键字,而字面量的语法则是关键字在前,数值在后。关键字和数值之间以冒号分开,而每对键值之间则是用逗号分开。
    + (id) dictionaryWithObjectsAndkeys: (id) firstObject,...;
    该方法接受对象和关键字交替出现的序列,你nil值作为终止符号。
   使用objectForKey:方法并传递前面用来存储的关键字,就可以访问字典中的数值了:
    - (id) objectForkey: (id) aKey;
    向NSMutableDictionary类发送dictionary消息,便可以创建新的NSMutableDictionary对象,也可以使用dictionaryWithCapacity:方法来创建新的可变字典告诉Cocoa该字典的最终大小。
   + (id) dictionaryWithCapacity: (NSUIneger) numItems;
    在字典中删除一些关键字,使用removeObjectForKey:方法:
   - (void) removeObjectForKye: (id) aKey;
    4.其他数值
       4.1NSNumber
    Cocoa提供了NSNumber类来封装基本数据类型。可以使用以下类方法来创建新的NSNumber对象:
   + (NSNumber *) numberWithChar: (char) value;
   +   (NSNumber  *)   numberWithInt: (int) value;
   +   (NSNumber  *)   numberWithFloat:(float) value;
   +   (NSNumber  *)   numberWithBool: (BOOL) value;
      4.2NSValue
    NSNumber 实际上是NSValue的子类,NSValue可以封装任意值。
    创建新的NSValue对象。
    + (NSValue *) valueWithBytes: (const void *) value objCType: (const char *) type;
      4.2NSNull
       + (NSNull *) null;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: