iOS 编程学习笔记之Foundation框架

Foundation 框架:

  • NSString (c字符串前面加@)
    • NSString *myString @"My String\n";
    • NSString *anotherString [NSString stringWithFormat:@"%d %@"1@"String"];
    • NSString *fromCString [NSString stringWithCString:"A C string" encoding:NSUTF8StringEncoding];
    • NSString *string [NSString string]; NSString 类声明 string 类方法 ?
  • NSNumber
    • NSNumber *myIntValue @32;
    • NSNumber *myDoubleValue @3.22346432;
    • NSNumber *myBoolValue @YES;
    • NSNumber *myCharValue @'V';
    • NSNumber *myFloatValue @3.2F
  • NSArrayNSSet 和 NSDictionary 类的内容不能随时间而变化。
  • NSArray(可以存不同类的实例!
    • 虽然NSArray不可变,但是它所存的元素是可变的。(可以理解为它保存的是指针变量。)
    • 定义:
      • NSArray *someArray @[firstObjectsecondObjectthirdObject];(不要用nil结尾)
      • NSArray *someArray =[NSArray arrayWithObjects:firstObjectsecondObjectthirdObjectnil];(以nil作为结尾符,与c中的char数组类似)
    • “成员函数”:
      • 数组元素个数:[someArray count]
      • 查找元素:[someArray containsObject:someString]
      • 访问元素:[someArray objectAtIndex:0]  (此方法在数组为空时会返回异常)
      • 访问元素:someArray[0] (实为上个方法的重写)
      • 输出元素到NSlog函数:NSLog(@"First item is: %@"[someArray objectAtIndex:0]);
      • NSArray *sortedStrings [unsortedStrings sortedArrayUsingSelector:@selector(compare:)]; (由于NSArray不可变,所以该方法会返回新的排好序的数组)
  • NSMutableString
    • NSMutableString *mutableString [NSMutableString stringWithString:@"Hello"];
    • [string0 appendString:@" World!"]
    • [string0 isKindOfClass:[NSMutableString class]] 判断是否是这个类或者这个类的子类的实例
    • [string0 isMemberOfClass:[NSMutableString class]] 判断是否是这个类的实例
  • NSMutableArray
    • NSMutableArray *mutableArray [NSMutableArray array];
    • [mutableArray addObject:@"gamma"];
    • [mutableArray replaceObjectAtIndex:withObject:@"epsilon"]; 或者 mutableArray[0] = @"epsilon";
    • [mutableArray sortUsingSelector:@selector(caseInsensitiveCompare:)];
      • @selector(localizedCompare:) 普通排序
      • @selector(caseInsensitiveCompare:) 按升序且不区分大小写的顺序排序
  • NSSet (单个对象只会添加一次,和stl里的set类似)
    • NSSet *simpleSet [NSSet setWithObjects:@"Hello, World!"@42aValueanObjectnil];
  • NSDictionary (感觉就是stl中的map)
    • 创建……
    • 查询对象:NSNumber *storedNumber dictionary[@"magicNumber"]; 或者 NSNumber *storedNumber [dictionary objectForKey:@"magicNumber"];
    • 可变性:使用 NSMutableDictionary 子类?
    • 添加、删除……
    • (虽然其他对象也可以用作键,但要注意,每个键都会被拷贝以供字典使用,并且必须支持 NSCopying。不过,如果要使用键-值编码,则必须为字典对象使用字符串键。若要了解更多信息,请参阅《Key-Value Coding Programming Guide》(键值编码编程指南)。)
  • NSNull (单例类)
    • nil表示无对象,[NSNull null]才是null值。
    • NSArray *array @@"string"@42[NSNull null];
    • 1 for (id object in array) {
      2     if (object == [NSNull null]) {
      3         NSLog(@"Found a null object");
      4     }
      5 }
      //检查是否存在null实例
posted @ 2014-09-15 09:38  ooyyloo  阅读(120)  评论(0编辑  收藏  举报