2013-10-12 43 views
1

不正确的校验和我得到一个错误IOS7:为释放对象

malloc: *** error for object 0x146f9404: incorrect checksum for freed object - object was  probably modified after being freed. 
*** set a breakpoint in malloc_error_break to debug 

在下面的方法:

+ (void)drawXIB_StatsDetaillees:(Statistiques*)statistiques ... { 

NSArray* objects = [[NSBundle mainBundle] loadNibNamed:@"Match_Statistiques_Detaillees" owner:self options:nil]; 

错误自带的NSArray。

下面是这个方法的调用:

+ (NSString*)drawPDF:(Match*)currentMatch { 

[self drawXIB_StatsDetaillees:[currentMatch statistiquesMatch] andMatch:currentMatch andTitre1:titre1 andTitre2:titre2]; 

这是通过一个新的线程(GCD)称为静态类,我认为我的NSArray的是这个类的2个调用之间释放。

你同意吗?

在这种情况下,我应该为我的数组创建一个强属性属性,而不是在每次调用时创建一个新实例?

感谢您的帮助,如果我的英语不好,请原谅我。

斯特凡

回答

1

你所得到的错误在于方法,但问题是其他地方。

要找到问题的根源,请在XCode中转到Product> Scheme> Edit Scheme,然后在Diagnostics选项卡下启用所有Malloc设置和Guard Malloc。

这样,再次运行您的应用程序,并且XCode将停在导致问题的线路上。

Scheme definition

+0

我有这个错误,使民警卫队malloc和它固定我的应用程序。我然后禁用了警卫和应用程序继续工作正常?!奇! – Nick