A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李烨 中级黑马   /  2014-4-17 11:13  /  1806 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. int main( )
  2. {
  3.     NSString *str = [NSString stringWithFormat:@"format"];
  4.     NSLog(@"%@", str);
  5.     NSString *str2 = [NSString stringWithString:@"string"];
  6.     NSLog(@"%@", str2);
  7.     return 0;
  8. }

  9. /*
  10. 输出结果:
  11. 2014-04-16 20:06:13.386 test[577:303] format
  12. 2014-04-16 20:06:13.391 test[577:303] string
  13. */
复制代码

****************************************************************************
这两种方法不都一样么,什么情况下会有区别?

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

5 个回复

倒序浏览
内存管理的区别吧, stringWithFormat是实例方法,需要手动release释放内存,而stringWithFormat是类方法, 类中有autorelease,会自动释放内存
回复 使用道具 举报
NSString *str = [NSString stringWithFormat:@"format %d",20]; // 后面可以加不同格式,用起来更灵活
NSString *str2 = [NSString stringWithString:@"string"];  // 一般不这么写,不可变转可变可以用这个方法
快速创建就可以了:NSString *str2 = @"string";

评分

参与人数 1黑马币 +2 收起 理由
jing迪 + 2

查看全部评分

回复 使用道具 举报
马凯文 发表于 2014-4-17 13:12
stringWithString 和stringWithFormat 都是类方法,返回值也都是一个字符串
但是stringWithString用于浅拷 ...

好高大上的解释。。。我顶!
回复 使用道具 举报
马凯文 发表于 2014-4-17 13:12
stringWithString 和stringWithFormat 都是类方法,返回值也都是一个字符串
但是stringWithString用于浅拷 ...

:handshake
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马