码迷,mamicode.com
首页 > 其他好文 > 详细

OC-Foundation框架整理

时间:2015-07-31 13:12:51      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:foundation   ios   objective   

/*
foundation框架是其他所有IOS框架的基础、foundation框架包含了很多开发中常用的数据类型
    1、结构体
    2、数字类
    3、字符串类
    4、集合类
    5、日期类
    。。。
*/
        /*
         NSRange 表示范围

         typedef struct _NSRange {
         NSUInteger location;
         NSUInteger length;
         } NSRange;

         */

        //查找某个字符串在另一个字符串中的位置
        NSString *str=@"xxoo";
        NSRange range2 = [str rangeOfString:@"oo"];
        if (range2.location == NSNotFound) {
            NSLog(@"没找到");
        }else{
             NSLog(@"在字符串中的位置和长度为:%lu %lu",range2.location,range2.length);
        }
        //快速把结构体转化成字符串
        NSLog(@"%@",NSStringFromRange(range2));

                /*
         NSRange 表示范围

         typedef struct _NSRange {
         NSUInteger location;
         NSUInteger length;
         } NSRange;

         */

        //查找某个字符串在另一个字符串中的位置
        NSString *str=@"xxoo";
        NSRange range2 = [str rangeOfString:@"oo"];
        if (range2.location == NSNotFound) {
            NSLog(@"没找到");
        }else{
             NSLog(@"在字符串中的位置和长度为:%lu %lu",range2.location,range2.length);
        }
        //快速把结构体转化成字符串
        NSLog(@"%@",NSStringFromRange(range2));
    }

    //NSPoint 表示点 和CGPoint一样不过CGPoint可以跨平台

    NSPoint point1=NSMakePoint(100, 100);
    NSLog(@"%.1f,%.1f",point1.x,point1.y);

    //NNSize 表示ui元素的尺寸

    NSSize size1=NSMakeSize(100,300);
     NSSize size2=NSMakeSize(100,300);
    //NSRect =表示ui元素的位置和尺寸
    NSRect rect1 = NSMakeRect(0, 0, 100, 30);
    NSRect rect2 = NSMakeRect(0, 0, 100, 20);

    //坐标原点
    NSMakePoint(0, 0);
    CGPointMake(0, 0);
    CGPoint pointz=CGPointZero;

    //尺寸为0
    CGSize sizeZ=CGSizeZero;


   // 比较两点是否相同  返回尺寸

    NSPoint p1=NSMakePoint(10, 10);
    NSPoint p2=NSMakePoint(20, 10);
    CGPointEqualToPoint(p1, p2);


    //比较两个点位置和尺寸

    bool flag1 = CGPointEqualToPoint(p1, p2);
    bool flag2 = CGSizeEqualToSize(size1, size2);
    bool flag3 = CGRectEqualToRect(rect1, rect2);

    //坐标原点默认左上角
    //判断某个区域是否包含了该点

   // bool flag4 = CGRectContainsPoint(rect1, rect2);

    //判断某个区域是否包含某个小区域
    bool flag5 = CGRectContainsRect(rect1, rect2);

    if (flag5) {
        NSLog(@"包含");
    }else{
        NSLog(@"不包含");
    }

/*
装箱和拆箱
    装箱(boxing)     :把基本数据类型包装为OC对象  (向上转型)
    拆箱(unboxing):把OC对象转化为基本数据类型 (向下转型)
*/
        /*
         NSNumber   把基本数据类型包装成对象
         NSValue    把结构体包装成对象
         NSNumber 是 NSValue 的子类
         */
        //装箱
        NSNumber *intN1 = [[NSNumber alloc] initWithInt:1];
        NSNumber *intN2 = [[NSNumber alloc] initWithInt:2];

        NSNumber *floatN1 = [[NSNumber alloc] initWithFloat:1.0];

        //通过类方法快速创建对象
        NSNumber *floatN2 = [NSNumber numberWithFloat:2];
        NSNumber *longN1 = [NSNumber numberWithLong:10];

        //判断两个对象是否相等
        if([intN1 isEqualToNumber:intN2]){  //只要数值相等就想等
            NSLog(@"相等");
        }else{
            NSLog(@"不相等");
        }

        if([intN1 isEqualToValue:intN2]){   //数值和类型都相等才相等
            NSLog(@"相等");
        }else{
            NSLog(@"不相等");
        }

        //比较两个对象的大小
        /*

         */
        if ([intN1 compare:intN2] == NSOrderedDescending) {
            NSLog(@"<");
        } else if ([intN1 compare:intN2] == NSOrderedSame){
            NSLog(@"=");
        } else{
            NSLog(@">");
        }

        //拆箱
        int num1=[intN2 intValue];
        float num2=[floatN1 floatValue];

        //快速装箱 @()
        NSNumber *obj1=@(1);
        NSLog(@"快速装箱 %@",obj1);



        /*
         NSString 不可变字符串

         */
        //创建字符串(快速创建字符串,只能用于创建不可变的字符串)
        NSString *str = @"Hello world";

        NSString *str2 = [[NSString alloc]init];

        NSString *str3 = [NSString stringWithFormat:@"%c pple",‘a‘];
        //把c的字符串转为c的字符串
        char *strC = "c string";
        NSString *str4 = [NSString stringWithUTF8String:strC];
        NSLog(@"%@",str4);

        NSString *str5 = [NSString stringWithUTF8String:"ios"];

        //oc字符串转为c的字符串
        const char *cStr = [str5 UTF8String];



        NSString *str7 = @"123456";

        //把数字转化为字符串
        int number1 = [str7 intValue];
        float number2 = [str7 floatValue];
        double number3 = [str7 doubleValue];

        //如何求字符串长度
        NSInteger lenth1=[str7 length];
        NSLog(@"str7长度是:%lu",str7.length);

        //获取字符串中的字符
        char ch = [str7 characterAtIndex:2];
        NSLog(@"%c",ch);

        //比较两个字符串是否相等
        NSString *str8 = @"aaaa11";
        NSString *str9 = @"AAAA11";
        //比较两个字符串是否相等
        BOOL flag1 = [str8 isEqualToString:str9];
        if (flag1) {
            NSLog(@"相等");
        }else{
            NSLog(@"不相等");
        }
        //比较两个字符串的大小 返回-1 0 1
        if([str8 compare:str9] == NSOrderedAscending){
            NSLog(@"升序");
        }else if([str8 compare:str9] == NSOrderedSame){
            NSLog(@"相等");
        }else{
            NSLog(@"降序");
        }

        //不区分大小写的比较
        //[str8 caseInsensitiveCompare:str9];
        BOOL flag12 = [str8 caseInsensitiveCompare:str9];
        if([str8 caseInsensitiveCompare:str9] == NSOrderedAscending){
            NSLog(@"升序");
        }else if([str8 caseInsensitiveCompare:str9] == NSOrderedSame){
            NSLog(@"相等");
        }else{
            NSLog(@"降序");
        }

        //将字符串中大写字母转化为小写字母
        NSString *str10 =@"IOS APPLE";
        NSLog(@"%@",[str10 lowercaseString]);

        //将字符串中小写字母转化成大写字母
        NSString *str11 =@"ios apple";
        NSLog(@"%@",[str11 uppercaseString]);

        //将字符串中首字母大写,其余小写
        NSString *str12=@"apple";
        NSLog(@"%@",[str12 capitalizedString]);

        //在一个字符串中查找另一个字符串
        NSString *str13=@"apple ios wei";
        NSRange range1 = [str13 rangeOfString:@"os"];
        if (range1.location == NSNotFound) {
            NSLog(@"木有找到");
        }else{
            NSLog(@"耶、找到了!! 位置:%@",NSStringFromRange(range1));

        }

        //在一个字符串中截取某部分作为新的字符串
        NSString *str14=@"ilovke677";
        //从当前位置截取到末尾
        NSString *str15=[str14 substringFromIndex:4];
        NSLog(@"%@",str15);

        //从开始截取到当前位置
        NSString *str16 = [str14 substringToIndex:4];
        NSLog(@"%@",str16);

        //根据指定的范围查找
        NSRange range2=NSMakeRange(2,6);
        NSLog(@"%@",[str14 substringWithRange:range2]);

        //判断某个字符串是否以某个特定的字符串开头,bool
        NSString *str17=@"lovke lovke";
        if ([str17 hasPrefix:@"lo"]) {
            NSLog(@"lo 是字符串%@的前缀",str17);
        }else{
            NSLog(@"%@不是一lo开头",str17);
        }

        //判断某个字符串是否以某个特定的字符串结尾,bool
        if ([str17 hasSuffix:@"ke"]) {
            NSLog(@"字符串%@是以ke结尾",str17);
        }else{
            NSLog(@"%@不是一ke结尾",str17);
        }

        //遍历字符串
        NSString *str18=@"I lovke nuli study IOS";
        for (int i=0; i<str18.length; i++) {
            char ch = [str18 characterAtIndex:i];
            NSLog(@"字符串第%i个位置的字符为:%c",i+1,ch);
        }

        //从文件中读取字符串(绝对路径)
        NSString *str19=[[NSString alloc]initWithContentsOfFile:@"/Users/jerehedu/Desktop/a.rtf" encoding:NSUTF8StringEncoding error:nil];
        NSLog(@"内容:%@",str19);


        //读取文件
        /*
         URL 统一资源定位符,资源路径  
         协议头://路径
         网络资源:http://路径     https://路径
         本地资源 file://路径

         */



        /*
         NSMutableString    可变的字符串

         */

        /*
         在字符串后面拼接一个字符串
         */

        //不可变的字符串,返回一个拼接好的新的字符串接收
        NSString *qqStr=@"12345678";
        NSString *qqEmile=[qqStr stringByAppendingString:@"qq.com"];
        NSLog(@"qq邮箱是:%@",qqEmile);

        //可变字符串拼接
        NSMutableString *qqMutableStr=[NSMutableString stringWithString:qqStr];
        [qqMutableStr appendString:@"@qq.com"];
        NSLog(@"可变字符串,qq邮箱:%@",qqMutableStr);

        //拼接网址
        NSString *baidu1=@"www.baidu.com";
        NSString *baidu2=@"image/lovke";
        //推荐使用
        NSString *baidu=[baidu1 stringByAppendingPathComponent:baidu2];
        NSLog(@"%@",baidu);

        //1
        NSString *baidu_1=[NSString stringWithFormat:@"%@ %@",baidu1,baidu2];
        NSLog(@"%@",baidu_1);

        //2
        NSString *baidu_2=[baidu1 stringByAppendingFormat:@"/%@",baidu2];
        NSLog(@"%@",baidu_2);


        //网址分割
        NSString *jrUrlStr=@"hettp://www.baidu.com/images/lovke.gif";

        //将字符串按照某个字符串进行分割
        //根据  // 分割
        NSArray *ary =[jrUrlStr componentsSeparatedByString:@"//"];//分割
        NSLog(@"%@",ary);

        NSString *jrUrlEnd = [ary lastObject];//最后一项
        NSLog(@"%@",jrUrlEnd);
        NSArray *ary2=[jrUrlEnd componentsSeparatedByString:@"/"];//分割
        NSLog(@"%@",ary2);

        NSString *url = [ary2 firstObject];//第一项
        NSLog(@"公司命名为:%@",url);
    }


    NSMutableString *str5=[NSMutableString stringWithFormat:@"lovke keke"];
    //在某个字符串的某个位置插入一个字符串(index)】
    [str5 insertString:@"123" atIndex:6];
    NSLog(@"%@",str5);

    [str5 insertString:@"ABC" atIndex:0];
    NSLog(@"%@",str5);


    NSMutableString *str6=[NSMutableString stringWithFormat:@"lovke keke"];
    //替换,用新字符串取替换原有字符串的一部分
    [str6 replaceCharactersInRange:NSMakeRange(0, 2) withString:@"IOS"];
    NSLog(@"%@",str6);


    NSMutableString *str7=[NSMutableString stringWithFormat:@"lovke keke"];
    //删除字符串中某个范围的字符串
    [str7 deleteCharactersInRange:NSMakeRange(2, 2)];
    NSLog(@"%@",str7);



版权声明:本文为博主原创文章,未经博主允许不得转载。

OC-Foundation框架整理

标签:foundation   ios   objective   

原文地址:http://blog.csdn.net/qxuewei/article/details/47166519

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!