经典指数          
原因
1000
浏览数
0
收藏数
 

关于下列程序,输出是
NSMutableArray* ary = [[NSMutableArray array] retain];
NSString *str = [NSString stringWithFormat:@"test"];
[strretain];
[aryaddObject:str];
NSLog(@"%@%d",str,[str retainCount]);
[strretain];
[strrelease];
[strrelease];
NSLog(@"%@%d",str,[str retainCount]);
[aryremoveAllObjects];
NSLog(@"%@%d",str,[str retainCount]);
  • 2,3,1
  • 3,2,1
  • 1,2,3
  • 2,1,3

     举报   纠错  
 
切换
1 个答案
test3 test2 test1 最相近的答案: B NSString *str = [NSStringstringWithFormat : @"test" ]; //test1 创建 +1 [str retain];//retain +1 [ary addObject:str];// 执行 add +1 [str release ];//release -1   [ary removeAllObjects ];//执行remove(数组中所有对象均执行release) -1 -->所以整个过程中,str的引用计数: NSString *str = [NSStringstringWithFormat : @"test" ]; //0 + 1 = 1 [str retain];//1 + 1 = 2 [ary addObject:str];//2 + 1 = 3 [str retain];//3 + 1 = 4 [str release];//4 - 1 = 3 [str release];//4 - 2 = 2 [ary removeAllObjects]; //2 - 1 = 1 给出的标准答案也有问题啊~  考的是引用计数的值,但是也不能漏掉前方的“test”字符串。不严谨
 
切换
撰写答案
扫描后移动端查看本题