首页 > 试题广场 >

@interface Person : NSObject @

[单选题]
@interface Person : NSObject
@property(nonatomic,retain)NSString * name;
@end
上面声明一个Person类
Person * per = [[Person alloc] init];
per.name = [[NSString alloc] initWithFormat:@"张三"];
NSLog(@"per.name = %d",[per.name retainCount]);
  • per.name = -1;
  • per.name = 0;
  • per.name = 1;
  • per.name = 2;
实际运行结果 -1.查阅到对应的解释“NSString不能手动分配内存,只能由系统分配。所以是-1”


发表于 2021-03-02 14:07:37 回复(2)
retain赋值+1,per持有+1
发表于 2019-10-13 14:37:55 回复(0)
题目答案错了吧,“张三”属于大内容对象,存在内存的堆中,有引用计数机制。应该是2才对。 而如果是英文字符串并且长度少于10的话,才是-1
发表于 2023-09-18 14:38:19 回复(0)
并没说当前环境是MRC还是ARC
发表于 2022-10-28 10:42:57 回复(0)