copy与内存管理

本小节知识点:

  1. 【理解】copy与内存管理

1.copy与内存管理

  • 浅拷贝
    • 原对象引用计数器+1
    • 必须对原对象进行释放
    char *cstr = "this is a c string";
    NSString *str1 = [[NSString alloc] initWithUTF8String:cstr];
    NSLog(@"str = %lu", [str1 retainCount]);
    NSString *str2 = [str1 copy];
    NSLog(@"str = %lu", [str1 retainCount]);
    [str2 release];必须做一次release
  • 深拷贝
    • 必须释放新对象
    char *cstr = "this is a c string";
    NSString *str1 = [[NSString alloc] initWithUTF8String:cstr];
    NSLog(@"str = %lu", [str1 retainCount]);
    NSMutableString *str2 = [str1 mutableCopy];
    NSLog(@"str = %lu", [str1 retainCount]);
    [str2 release]; // 必须做一次release

提示可以创建iOS项目演示


results matching ""

    No results matching ""