Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c ios初始化函数内部的实例以在外部使用_Objective C_Ios_Instance_Retain_Analyzer - Fatal编程技术网

Objective c ios初始化函数内部的实例以在外部使用

Objective c ios初始化函数内部的实例以在外部使用,objective-c,ios,instance,retain,analyzer,Objective C,Ios,Instance,Retain,Analyzer,xcode分析器告诉我,方法返回的Objective-C对象的保留计数为+1: 但自我运动员是一个在我的职能之外我也需要的对象。。。我如何解决这个“警告”? 再次感谢 运动员的声明如下: NSMutableArray *athletes; @property (nonatomic, retain) IBOutlet NSMutableArray *athletes; 将该行替换为该行: self.athletes = [NSMutableArray array]; 我在这里写了完整的解释:

xcode分析器告诉我,方法返回的Objective-C对象的保留计数为+1:

但自我运动员是一个在我的职能之外我也需要的对象。。。我如何解决这个“警告”? 再次感谢

运动员的声明如下:

NSMutableArray *athletes;
@property (nonatomic, retain) IBOutlet NSMutableArray *athletes;

将该行替换为该行:

self.athletes = [NSMutableArray array];

我在这里写了完整的解释:

用这一行替换那一行:

self.athletes = [NSMutableArray array];

我在这里写了完整的解释:

因为您的属性是用“retain”定义的,所以使用点符号将导致额外的retain。[[NSMutableArray alloc]init]返回的retain计数为1,然后使用属性声明生成的setter函数设置属性时,retain计数为2

要解决此问题,请执行以下操作之一:

self.athletes = [NSMutableArray array]; // Returns an autoreleased object
或者,您也可以这样做:

athletes = [[NSMutableArray alloc] init]; // Doesn't use the setter generated by the property declaration, so doesn't retain again.

因为您的属性是用“retain”定义的,所以使用点符号将导致额外的retain。[[NSMutableArray alloc]init]返回的retain计数为1,然后使用属性声明生成的setter函数设置属性时,retain计数为2

要解决此问题,请执行以下操作之一:

self.athletes = [NSMutableArray array]; // Returns an autoreleased object
或者,您也可以这样做:

athletes = [[NSMutableArray alloc] init]; // Doesn't use the setter generated by the property declaration, so doesn't retain again.

有一个很好的方法来处理这个问题(您在创建UI时已经使用了这个模式)

NSMutableArray*athletesTemp=[[NSMutableArray alloc]init]

自我运动员=运动员

[athletesTemp发布]


在这里,您不需要承载自动释放对象的负载

有一个很好的方法来处理这个问题(您在创建UI时已经使用了这个模式)

NSMutableArray*athletesTemp=[[NSMutableArray alloc]init]

自我运动员=运动员

[athletesTemp发布]

在这里,您不需要承载自动释放对象的负载