Objective-C基本语法

OC的语法这里就不给大家介绍了,大家慢慢熟悉。在OC的编程中大家可能不常见到C语言中函数的使用了,OC采用的是消息发送机制,将方法发送给对象。方法分为

加号方法:静态方法,又称为类方法,由类来调用;方法由加号开头。

减号方法:动态方法,又成为对象方法,由对象来调用;方法由加号开头。

例如常见的alloc就是加好方法,init就是建好方法;同理便利构造器方法也是加好方法,对应的自定义初始化方法为减号方法。

//创建一个字符串
    //inint
    NSString *str1 = [[NSString alloc]init];
    //string
    NSString *str2 = [NSString string];
    
    //在创建一个简单类型的非空字符串的时候,不需要使用初始化方法和便利构造器方法,直接赋值即可
    NSString *str4 = @"iphone";
    
    NSString  *name = @"jack";
    NSInteger num = 12;
    
    //初始化字符串的时候,将其他类型的数据转化成字符串
    NSString  *str5 = [NSString stringWithFormat:@"%ld%@", num, name];
    NSLog(@"%@", str5);
    
    NSUInteger length = [str5 length];
    NSLog(@"%lu", length);
    
    NSString *str6 = @"人生若只如初见";
    NSLog(@"%lu", [str6 length]);
    
    //获取子字符串
    NSString *sub1 = [str6 substringToIndex:2];
    NSLog(@"%@", sub1);
    
    NSString *sub2 = [str6 substringFromIndex:5];
    NSLog(@"%@",sub2);
    
    //第一个参数表示截取位置,第二个参数位置表示窃取长度
    NSString *sub3 = [str6 substringWithRange:NSMakeRange(2, 3)];
    NSLog(@"%@",sub3);
    
    //字符串拼接
    //"人生"和"若只如"
    NSString *str7 = [sub1 stringByAppendingString:sub3];
    //"人生若只如"和"初见"
    NSString *str8 = [str7 stringByAppendingString:sub2];
    NSLog(@"%@", str8);
    
     //字符串替换
    NSString *str9 = [str8 stringByReplacingOccurrencesOfString:@"初" withString:@"不"];
    NSLog(@"%@", str9);
    
    //字符串相等
    BOOL b = [str8 isEqualToString:str9];
    NSLog(@"%hhd", b);
    
    //字符串比较
    //OC中的排序有三种结果,对应的枚举值分别为-1, 0, 1
    NSString *str10 = @"ios";
    NSString *str11 = @"ioa";
    NSComparisonResult result = [str10 compare:str11];
    NSLog(@"%ld", result);

    NSString *str = @" 却道故人心易变";
    //可变字符串的创建可以直接使用便利构造器,也可以使用不可变字符串创建一个可变字符串
    NSMutableString *mutStr1 = [[NSMutableString alloc]initWithString:@"等闲变却故人心"];
    
    NSMutableString *mutStr2 = [[NSMutableString alloc]initWithString:str];
    //拼接字符串
    [mutStr1 appendString:mutStr2];
    //插入字符
    [mutStr1 insertString:@"," atIndex:7];
    //删除
    [mutStr1 deleteCharactersInRange:NSMakeRange(8, 1)];
     
    NSLog(@"%@", mutStr1);


    //NSArray
    
    //创建数组
    NSArray *array1 = [[NSArray alloc]initWithObjects:@"iphone", @"huawei", @"BlackBerry", nil];
    NSArray *array2 = [NSArray arrayWithObjects:@"Xiaomi", @"Vivo", @"Oppo", nil];
    
    //获取数组元素个数
    NSUInteger count = [array1 count];
    NSLog(@"%lu", count);
    //获取指定下标的元素
    NSString *string = array2[1];
    NSLog(@"%@", string);


  //NSMutableArray
    
    //NSArray的子类,所以初始化方法可以使用父类的
    NSArray *array1 = [NSArray arrayWithObjects:@"Xiaomi", @"Vivo", @"Oppo", nil];
    
    //创建可变数组
    NSMutableArray *mutArray1 = [[NSMutableArray alloc]initWithObjects:@"liuzhanyu", @"shenwenchao", @"houmeihua", nil];
    
    NSMutableArray *mutArray2 = [NSMutableArray arrayWithObjects:@"libaojian", nil];
    //可以根据不可变数组创建可变数组
    NSMutableArray *mutArray3 = [NSMutableArray arrayWithArray:array1];
    
    //增加
    [mutArray2 addObject:@"libin"];
    NSLog(@"%@", mutArray2);
    
    //删除
    [mutArray1 removeObjectAtIndex:2];
    NSLog(@"%@", mutArray1);
    
    //修改
    [mutArray1 replaceObjectAtIndex:1 withObject:@"houmeihua"];
    NSLog(@"%@", mutArray1);
    
    //交换两个元素的位置
    
    [mutArray1 exchangeObjectAtIndex:0 withObjectAtIndex:1];
    NSLog(@"%@", mutArray1);


    //遍历数组
    
    NSArray *array = [NSArray arrayWithObjects:@"liyachuan", @"wangjing",@"zhangsan", nil];
    for (NSInteger i = 0; i < array.count; i++) {
        NSLog(@"%@", array[i]);
    }


    //值对象
    //将基本数据类型转化成对象数据类型用于OC的数据处理
    //将整型转化成对象类型
    int a = 10;
    NSNumber *aNumber = [NSNumber numberWithInt:a];
    //将对象转化成基本数据类型
    int _a = [aNumber intValue];
    NSLog(@"%d", _a);
    
    double d = 3.141592;
    NSNumber *dNumber = [NSNumber numberWithDouble:d];
    double _d = [dNumber doubleValue];
    NSLog(@"%lf", _d);
    
    //变量和对象类型的互转(仅支持系统提供的类型)
    NSRange range = {1,4};
    NSValue *rValue = [NSValue valueWithRange:range];
    NSRange _rang = [rValue rangeValue];



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值