Object-C 基本语法

基本类型

    // 字符串
    NSString *str = @"字符串";
    NSLog(@"%@",str);
    // OC里的整形
    NSInteger a = 100;
    NSLog(@"%ld",a);
    // 浮点型
    CGFloat f = 3.14;
    NSLog(@"%g",f);
    // 数组
    NSArray *arr = @[@"1",@"2",@"3"];

注意:Object-C 是 C 的超集,所以任何C语言程序不经修改就可以直接通过Objective-C编译器。所以 C 的基本语法也可以在 iOS 中使用。

创建对象

    // 1.向堆空间申请内存
    Student *stu = [Student alloc];
    // 2.对对象进行初始化的设置
    stu = [stu init];
    
    // 一般是这样
    Student *stu = [[Student alloc] init];

字符串

创建字符串

// 通过字面量的方式快速创建一个对象
    NSString *str = @"倪灏";

// 通过常规的alloc init的方式创建一个字符串对象
    NSString *s = [[NSString alloc] init];
    
    // 用便利构造器的方式创建一个空字符串(不推荐使用)
    NSString *s = [NSString string];

字符串长度

NSString *str = @"字符串的长度";
NSLog(@"%ld",str.length);

获取子串

// 从下标的位置开始,包括下标位置,后面的内容都要
NSLog(@"%@",[str substringFromIndex:2]);

// NSRange是一个结构体,里面包含两部分一个数location就是范围的起始位置,另外一个是length是截取的长度
NSLog(@"%@",[str substringWithRange:NSMakeRange(0, 2)]);

字符串拼接

// 万能拼接法,可以把任意类型转换为字符串
    NSString *str2 = @"他自己";
    
    NSString *newStr = [NSString stringWithFormat:@"%@%@%d",str,str2,123];
    NSLog(@"%@",newStr);
    
    str = [NSString stringWithFormat:@"%@%@",str,str2];
    NSLog(@"%@",str);

字符串是否相等

NSString *str = @"abc";
NSString *str1 = @"abc";
BOOL result = [str isEqualToString:str1];

字符串替换

   NSString *str = @"窗前明月光明";
   NSString *newStr = [str stringByReplacingOccurrencesOfString:@"明" withString:@"你还"];

数组

数组是OC提供的一个有序容器,里面放的必须是对象类型数据。
数组有可变数组和不可变数组。

不可变数组

    // 初始化
    NSArray *arr = @[@"1",@"2",@"3",@"4",@"5"];
    // alloc 和 自定义初始化的方式来创建
    NSArray *arr1 = [[NSArray alloc] initWithObjects:@"张三",@"2",@"3",@"4",@"5",@"6", nil];

    // 字符串截取成数组
    NSString *str = @"www.lanou3g.com";
    NSArray *arr = [str componentsSeparatedByString:@"."];
    NSLog(@"%@",arr);

// 数组内容拼接成字符串
    NSArray *arr = @[@"大连",@"青岛",@"丹东",@"蓝欧",@"塞北"];
    NSString *str = [arr componentsJoinedByString:@":"];
    NSLog(@"%@",str);

// 数组的快速枚举 for .. in
// in 的前面填写元素的类型,in的后面需要指定遍历的那个容器
    NSArray *arr = @[@"1",@"2",@"3",@"4",@"5",@"6"];
    for (NSString *temp in arr) {
        NSLog(@"%@",temp);
    }

// 判断一个对象是否在数组中
    BOOL result = [arr1 containsObject:@"1.1"];

可变数组

    NSMutableArray *arr = [[NSMutableArray alloc] init];
    NSMutableArray *arr1 = [NSMutableArray array];
    // 可变数组添加元素
    [arr addObject:@"123"];
    [arr addObject:@"aslkd"];
    [arr addObject:@"HEo"];
    [arr addObject:@"123"];
    
    [arr insertObject:@"4" atIndex:2];
    // 移除
    [arr removeObjectIdenticalTo:@"123" inRange:NSMakeRange(0, 2)];
    
    // 移除
    [arr replaceObjectAtIndex:2 withObject:@"12"];
    
    // 交换
    [arr exchangeObjectAtIndex:0 withObjectAtIndex:1];
    
    // 移除
    [arr removeObjectAtIndex:1];

字典(散列、key-value)