美文网首页
iOS 指针

iOS 指针

作者: NapoleonY | 来源:发表于2019-06-18 11:09 被阅读0次

    可变对象与不可变对象

    NSMutableString *mutaStr = [[NSMutableString alloc] initWithFormat:@"1"];
    [mutaStr insertString:@"2" atIndex:0];
    NSLog(@"mutaStr = %@", mutaStr); // mutaStr = 21
        
    mutaStr = @"123";
    [mutaStr insertString:@"4" atIndex:2]; // crash
    

    mutaStr 声明的是一个可变类型,mutaStr = @"123"; 将其指向了一个不可变的类型,由于 iOS 动态的特性,因此在编译时没问题;但是在运行时会 crash,因为 mutaStr 此时已经指向了一个不可变的对象

    类似的还有 NSArray

    NSMutableArray *mutaArray = [[NSMutableArray alloc] initWithObjects:@"1", @"2", nil];
    [mutaArray addObject:@"3"];
        
    mutaArray = @[@"4", @"5"];
    [mutaArray addObject:@"5"]; // crash
    

    相关文章

      网友评论

          本文标题:iOS 指针

          本文链接:https://www.haomeiwen.com/subject/gabxqctx.html