黑马程序员技术交流社区

标题: 为什么NSStrig 打印的计数器永远都是 -1 [打印本页]

作者: 陆露    时间: 2015-9-20 10:10
标题: 为什么NSStrig 打印的计数器永远都是 -1
本帖最后由 陆露 于 2015-9-20 16:44 编辑

怎么可以让他正常打印,我看视频里打印出来的都是正常的 求大神解答NSString *str = [NSString stringWithFormat:@"no is = %i",20]
NSLog(@"str的引用计数器=%zi", str retainCount);
//打印结果 str的引用计数器 = -1

作者: 毛强    时间: 2015-9-20 12:29
%zi是什么意思?
作者: 钟先明    时间: 2015-9-20 16:30
(@"%zi",[str3 length]); //意义为取出指定位置的字符
标准格式为NSStringstringWithFormat:@"%@"
基本格式问题
作者: 毛强    时间: 2015-9-20 16:41
钟先明 发表于 2015-9-20 16:30
(@"%zi",[str3 length]); //意义为取出指定位置的字符
标准格式为NSStringstringWithFormat:@"%@"
基本格 ...

能举个例子吗?
作者: 陆露    时间: 2015-9-20 16:47
钟先明 发表于 2015-9-20 16:30
(@"%zi",[str3 length]); //意义为取出指定位置的字符
标准格式为NSStringstringWithFormat:@"%@"
基本格 ...

一句惊呆梦中人
基本格式问题?
要么你解释清楚,是什么问题。
要么你写出打印不是-1的语句
你这样水贴回答问题不厚道
你还不如说同求,好点。
作者: 钟先明    时间: 2015-9-20 17:10
+(NSString*)stringWithFormat(不需要release)
    initWithFormat(需要release)     这两种方式创建的字符串对象是在内存的堆区里面;


    stringWithString(不需要release)
    initWithString(不需要release)    这两种方式创建的字符串对象在内存的常量区里面;


    NSString *str1 = @"abc";(不需要release)
这是关于内存管理中NSString的分类
//情况1 -</span><span style="color:#ff0000">- 需要自己释放</span><span style="color:#454545">。  
    return [[[NSString alloc] initWithFormat:@"%@",@"1223344"] autorelease];  
   //情况2  -</span><span style="color:#ff0000">- 系统自动释放。 这种方法因为不安全,并且存在含义模糊的情况,不建议使用。</span><span style="color:#454545">  
    return [[[NSString alloc] initWithString:@"1223344"] autorelease];  
   // 情况3 -</span><span style="color:#ff0000">- 系统自动释放。</span><span style="color:#454545">  
   return @"1223344";  
同求




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