年年有"余"

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2319|回复: 0

第二十四讲:Objective-C内存管理之拷贝简述

[复制链接]
  • TA的每日心情
    奋斗
    2022-12-13 21:26
  • 签到天数: 371 天

    [LV.9]以坛为家II

    发表于 2014-1-22 19:18:06 | 显示全部楼层 |阅读模式
    本帖最后由 Sian 于 2014-1-22 19:42 编辑

    1、创建一个字符串NSString,创建一个可变字符串NSMutableString;
    2、分别使用copy与mutableCopy方法分别对NSString与NSMutableString类型对象进行赋值
    3、效果是NSString copy后为NSString、NSString mutableCopy后为MutableString、NSMutableString copy后为NSString无法使用appendString方法、NSMutableString mutableCopy后为NSMutableString;
    main.m
    1. //
    2. //  main.m
    3. //  Copy
    4. //
    5. //  Created by yusian on 14-1-22.
    6. //  Copyright (c) 2014年 yusian. All rights reserved.
    7. //
    8. #import <Foundation/Foundation.h>
    9. int main(int argc, const char * argv[])
    10. {
    11.     @autoreleasepool {
    12.         
    13.         NSString * s1 = [[NSString alloc] initWithString:@"String"];
    14.         NSMutableString * s2 = [[NSMutableString alloc] initWithString:@"MutableString"];
    15.         NSString * s11 = [s1 copy];
    16.         NSString * s12 = [s1 mutableCopy];
    17.         NSMutableString * s21 = [s2 copy];
    18.         NSMutableString * s22 = [s2 mutableCopy];
    19.         [s12 appendString:@" to mutableString"];
    20.         //[s21 appendString:@" to String"];
    21.         [s22 appendString:@" to mutableString"];
    22.         NSLog(@"s1 is "%@"", s1);
    23.         NSLog(@"s2 is "%@"", s2);
    24.         NSLog(@"s11 is "%@" copy to:"%@"",s1, s11);
    25.         NSLog(@"s12 is "%@" mutableCopy to:"%@"",s1, s12);//NSString may not respond to 'appendString:
    26.         NSLog(@"s21 is "%@" copy to ,Can't use [s21 appendString:]",s21);
    27.         NSLog(@"s22 is "%@" mutableCopy to:"%@"",s2, s22);
    28.         [s1 release];
    29.         [s2 release];
    30.         
    31.         
    32.     }
    33.     return 0;
    34. }
    复制代码
    运行结果:
    1. 2014-01-22 19:12:35.398 Copy[1254:303] s1 is "String"
    2. 2014-01-22 19:12:35.399 Copy[1254:303] s2 is "MutableString"
    3. 2014-01-22 19:12:35.399 Copy[1254:303] s11 is "String" copy to:"String"
    4. 2014-01-22 19:12:35.400 Copy[1254:303] s12 is "String" mutableCopy to:"String to mutableString"
    5. 2014-01-22 19:12:35.400 Copy[1254:303] s21 is "MutableString" copy to ,Can't use [s21 appendString:]
    6. 2014-01-22 19:12:35.400 Copy[1254:303] s22 is "MutableString" mutableCopy to:"MutableString to mutableString"
    7. Program ended with exit code: 0
    复制代码
    QQ20140122-5@2x.png
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    手机版|小黑屋|Archiver|iOS开发笔记 ( 湘ICP备14010846号 )

    GMT+8, 2024-5-6 03:42 , Processed in 0.046117 second(s), 21 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表