黑马程序员技术交流社区

标题: stringWithFormat与stringWithString问题 [打印本页]

作者: 李烨    时间: 2014-4-17 11:13
标题: stringWithFormat与stringWithString问题
  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. */
复制代码

****************************************************************************
这两种方法不都一样么,什么情况下会有区别?
作者: 愿我能    时间: 2014-4-17 11:31
内存管理的区别吧, stringWithFormat是实例方法,需要手动release释放内存,而stringWithFormat是类方法, 类中有autorelease,会自动释放内存
作者: stone24    时间: 2014-4-17 11:39
NSString *str = [NSString stringWithFormat:@"format %d",20]; // 后面可以加不同格式,用起来更灵活
NSString *str2 = [NSString stringWithString:@"string"];  // 一般不这么写,不可变转可变可以用这个方法
快速创建就可以了:NSString *str2 = @"string";
作者: 脸皮猴    时间: 2014-4-17 13:49
马凯文 发表于 2014-4-17 13:12
stringWithString 和stringWithFormat 都是类方法,返回值也都是一个字符串
但是stringWithString用于浅拷 ...

好高大上的解释。。。我顶!
作者: 李烨    时间: 2014-4-17 15:53
马凯文 发表于 2014-4-17 13:12
stringWithString 和stringWithFormat 都是类方法,返回值也都是一个字符串
但是stringWithString用于浅拷 ...

:handshake




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