黑马程序员技术交流社区

标题: 关于可变和不可变数组的操作 [打印本页]

作者: 2014571245    时间: 2014-5-8 19:34
标题: 关于可变和不可变数组的操作
  1. #import <Foundation/Foundation.h>

  2. int main(int argc, const char * argv[])
  3. {
  4.     NSMutableString *new1 = [NSString stringWithFormat:@"12 , 34"];
  5.     NSMutableString *new2 = [new1 copy];
  6.     NSRange *rang = [new2 rangeOfString:@"34"];
  7.     NSMutableString *new = [new2 deleteCharactersInRange:rang];
  8.    
  9.     NSLog(@"%@",new);
  10.     return 0;
  11. }
复制代码


根据MJ老师的讲解,自己写的代码,试图将不可变数组内容拷贝一份到可变数组中,再对该数组进行删除操作,可是报错了,想问问这段代码合理吗?不合理的话应该怎么改?
作者: 兰闻天    时间: 2014-5-8 20:30
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{
    NSMutableString *new1 = [NSString stringWithFormat: @"12 , 34"]; // 这个最好前边的也是NSString
    NSMutableString *new2 = [new1 copy];  // 这里不对,对不可变数组执行copy是浅复制,应该换成[new1 mutableCopy],然后你再试试
    NSRange *rang = [new2 rangeOfString: @ "34"];
    NSMutableString *new = [new2 deleteCharactersInRange:rang];

    NSLog(@"%@",new);
    return 0;
}







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2