首页 > 代码库 > OC--Foundtation

OC--Foundtation

/*    NSRange  范围(location length)    NSPoint\CGPoint  点    NSSize\CGSize    ui元素的宽高    NSRect\CGRect*//*        NSString    不可变字符串    ->NSMutableString    可变字符串                //NSRange r1 = {2, 4}; // 不用        //NSRange r2 = {.location = 2, .length = 4};// 不用        //NSRange r3 = NSMakeRange(2, 4); // 掌握        NSString *str = @"i love oc";            // 查找某个字符串在str中的范围        // 如果找不到,length=0,location=NSNotFound==-1        NSRange range = [str rangeOfString:@"java"];        NSLog(@"loc = %ld, length=%ld", range.location, range.length);                    //下面三个都是集合类    NSArray        有序 不可变数组    ->NSMutableArray    可变数组        /*                Person *p = [[Person alloc] init];                NSArray *array = @[p,@"jack"];                /*            for(int i = 0;i<array.count;i++){                NSLog(@"%@",array[i]);            }                        //id obj 代表着数组中的每一个元素            //int i = 0;            for(id obj in array){                                //找出obj元素在数组中的位置                NSUInteger i = [array indexOfobject:obj]                NSLog(@"%ld - %@", i, obj);                //i++            }        */        [array enumerateObjectsUsingBlock:                //每遍历到一个元素,就会调用一次block        //并且当前元素和索引位置当做参数传给block        ^(id obj, NSUInteger idx,, BOOL *stop){                    NSLog(@"%ld - %@", idx, obj);                        if(idx == 1){                //停止遍历                *stop = YES;            }        }];    */        NSSet 无序 不可变    ->NSMutableSet    可变                NSMutableSet *s = [NSMutableSet set];                        [s addObject:@"adf"];        NSDictionary    字典     ->NSMutableDictionary            //字典是无序        //允许value相同,但key不能相同                NSDictionary *d = @{@"name" : @"jack",@"adrress" :@"乐山"};            NSMutableDictionary *dict = [NSMutableDictionary dictionary];                [dict setObject:@"jack" forKey:@"name"];                [dict setObject:@"乐山" forKey:@"adrress"];                    [dict enumerateKeysAndObjectsUsingBlock:        ^(id key, id obj, BOOL *stop){            NSLog(@"%@ - %@", key, obj);        }        /*        字典:            key     ------>    value            索引    ------>    文字内容                                    里面存储的东西都是键值对    */        NSNumber        之所以能包装基本数据类型为对象,是因为继承了NSValue                        //将各种基本数据类型包装成NSNumber对象        @20;        @10.5;        @YES;                @A;//NSNumber对象                @"A";//NSString对象                //将age变量包装秤NSNumber对象        int  age = 100;        @(age);        NSValue        // 结构体--->OC对象            CGPoint p = CGPointMake(10, 10);        // 将结构体转为Value对象        NSValue *value =http://www.mamicode.com/ [NSValue valueWithPoint:p];                // 将value转为对应的结构体        // [value pointValue];                NSArray *array = @[value ];            NSDate        int main()        {            // 09/10/2011            NSString *time = @"2011/09/10 18:56";                        NSDateFormatter *formatter = [[NSDateFormatter alloc] init];            formatter.dateFormat = @"yyyy/MM/dd HH:mm";                        NSDate *date = [formatter dateFromString:time];            NSLog(@"%@", date);            return 0;        }        void date2string()        {            NSDate *date = [NSDate date];                                    // 日期格式化类            NSDateFormatter *formatter = [[NSDateFormatter alloc] init];                        // y 年  M 月  d 日            // m 分 s 秒  H (24)时  h(12)时            formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";                        NSString *str = [formatter stringFromDate:date];                        NSLog(@"%@", str);        }                    NSObject*/
NSSet 和 NSArray的对比    1)共同点        *都是集合,都能存放多个OC对象        *只能存放OC对象,不能存放非OC对象类型(基本数据类型:int、char、float等,结构体,枚举)        *本身都是不可变,都有一个可变的子类            2)不同点        *NSArray有顺序,NSSet没有顺序

OC--Foundtation