OC-Foundation框架整理

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

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

         */

        //查找某个字符串在另一个字符串中的位置
        NSString *[email protected]"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 *[email protected]"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 *[email protected](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 [email protected]"IOS APPLE";
        NSLog(@"%@",[str10 lowercaseString]);

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

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

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

        }

        //在一个字符串中截取某部分作为新的字符串
        NSString *[email protected]"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 *[email protected]"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 *[email protected]"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 *[email protected]"12345678";
        NSString *qqEmile=[qqStr stringByAppendingString:@"qq.com"];
        NSLog(@"qq邮箱是:%@",qqEmile);

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

        //拼接网址
        NSString *[email protected]"www.baidu.com";
        NSString *[email protected]"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 *[email protected]"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);

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

时间: 2024-10-12 22:47:34

OC-Foundation框架整理的相关文章

OC Foundation框架—结构体

一.基本知识 Foundation—基础框架.框架中包含了很多开发中常用的数据类型,如结构体,枚举,类等,是其他ios框架的基础. 如果要想使用foundation框架中的数据类型,那么包含它的主头文件就可以了. 即#import<foundation/foundation.h> 补充:core foundation框架相对底层,里面的代码几乎都是c语言的,而foundation中是OC的. 二.常用的结构体介绍及简单使用 常用的结构体: (一)NSRang的基本使用 创建变量 (二)NSPo

OC Foundation框架—字符串

一.Foundation框架中一些常用的类 字符串型: NSString:不可变字符串 NSMutableString:可变字符串 集合型: 1) NSArray:OC不可变数组 NSMutableArray:可变数组 2) NSSet: NSMutableSet: 3) NSDictiorary NSMutableDictiorary 其它: NSDate NSObject 二.NSString和NSMutableString的使用与注意 (一)6种创建字符串的形式 (二)使用注意 (1)字符

OC Foundation框架—集合

Foundation框架—集合 一.NSArray和NSMutableArray (一)NSArray不可变数组 (1)NSArray的基本介绍 NSArray是OC中使用的数组,是面向对象的,以面向对象的形式操纵对象,是不可变数组. C语言数组有一个缺点即数组中只能存放同种数据类型的元素. OC数组只能存放OC对象,不能存放非OC对象,如int,结构体和枚举等. (2)NSArray的创建 (3)NSArray的访问 (4)NSArray的遍历 数组的遍历有以下几种方式: 首先创建一个数组 第

[OC Foundation框架 - 20] 统计代码行数

注意: 1.变量名和函数名不要混淆调用 2.不要对文件夹进行文件的操作,没有权限 3.递归调用注意初始化变量 1 // 2 // main.m 3 // CodeLineCount 4 // 5 // Created by hellovoidworld on 14-11-18. 6 // Copyright (c) 2014年 com.hellovoidworld. All rights reserved. 7 // 8 9 #import <Foundation/Foundation.h>

OC Foundation框架—字符串操作方法及习题

1 #import <Foundation/Foundation.h> 2 3 int main(int argc, const char * argv[]) { 4 @autoreleasepool { 8 /* 9 不可变字符串 10 1.创建字符串 11 实例方法(3种) 12 类方法(3种) 13 2.不可变字符串: 14 统计长度(2种) 15 索引提取 (3种) 16 比较 (3种) 17 查照字符串位置(1种) 18 判断前后缀 19 转换数字 20 大小写转换 21 字符串提取

[OC Foundation框架 - 23] 文件管理

A. 目录管理 1 NSFileManager*manager = [NSFileManagerdefaultManager];//单例模式 2 3 // 1.获取文件属性 4 NSString *path = @"/Users/hellovoidworld/desktop/oc/test20141121.txt"; 5 NSFileManager *manager = [NSFileManagerdefaultManager]; // 单例模式 6 NSDictionary *att

[OC Foundation框架 - 13] NSValue

NSNumber能够包装基本数据类型称为OC对象,是因为继承了NSValue 包装结构体成OC对象 1.自带结构体 1 void value() 2 { 3 CGPoint point = CGPointMake(10, 10); 4 NSValue *obj = [NSValue valueWithPoint:point]; 5 NSLog(@"%@", obj); 6 7 CGPoint p1 = [obj pointValue]; 8 BOOL result = CGPointE

[OC Foundation框架 - 12] NSNumber

1.概念 NSArray,NSDictionary只能放OC对象,不能放入基本数据类型 必须使用包装类NSNumber,把基本数据类型包装成OC对象 不支持自动包装解包 1 void number() 2 { 3 NSNumber *number = [NSNumber numberWithInt:10]; 4 NSMutableArray *array = [NSMutableArray array]; 5 [array addObject:number]; 6 7 NSLog(@"%@&qu

[OC Foundation框架 - 9] NSMutableArray

可变的NSArray,可以随意添加OC对象 1.创建 1 void arrayCreate() 2 { 3 NSMutableArray *array = [NSMutableArray arrayWithObject:@"1"]; 4 5 [array addObject:@"2"]; 6 [array addObject:@"3"]; 7 8 [array removeObject:@"2"]; 9 NSLog(@&quo

[OC Foundation框架 - 8] NSArray排序

1.派生 1 voidarrayNew() 2 { 3 NSArray*array = [NSArrayarrayWithObjects:@"1",@"2",nil]; 4 NSArray*array2 = [arrayarrayByAddingObject:@"3"]; 5 NSLog(@"%@", array2); 6 7 8 NSArray*array4 = [NSArrayarrayWithObjects:@"