Iphone 从自定义对象获取数据期间获取错误EXC_BAD_访问

Iphone 从自定义对象获取数据期间获取错误EXC_BAD_访问,iphone,nsmutablearray,Iphone,Nsmutablearray,我有10个自定义对象存储在数组中。这是我的密码。facebook_wallDataArray是可变数组 for(int i=0;i<10;i++) { FacebookWallData* wallPost=[[FacebookWallData alloc]init]; wallPost.messages=@"Wall Values"; [facebook_wallDataArray addObject:wallPost]; [wallPost re

我有10个自定义对象存储在数组中。这是我的密码。facebook_wallDataArray是可变数组

 for(int i=0;i<10;i++) {
   FacebookWallData* wallPost=[[FacebookWallData alloc]init];
    wallPost.messages=@"Wall Values";
[facebook_wallDataArray addObject:wallPost];

            [wallPost release];
}
但是我的程序因为异常EXC\u BAD\u访问而崩溃。我不明白我的代码哪里错了?facebook_wallDataArray具有如下存储值。它是NSMUtableArray

"<FacebookWallData: 0x4c52ee0>",
"<FacebookWallData: 0x4c52df0>",
"<FacebookWallData: 0x6828300>",
"<FacebookWallData: 0x6826d50>",
"<FacebookWallData: 0x4e25a10>",
"<FacebookWallData: 0x9317c60>",
"<FacebookWallData: 0x4c53190>",
"<FacebookWallData: 0x4e47e90>",
"<FacebookWallData: 0x4c53380>",
"<FacebookWallData: 0x93176e0>",
“”,
"",
"",
"",
"",
"",
"",
"",
"",
"",

谢谢

您创建了一个新的walldata对象,但随后从数组中获得了一个。因此,您丢失了指向刚创建的对象(内存泄漏)的指针,并从NSArray=>崩溃中释放了一个自动释放的对象

改为这样做:

-(void) facebookDisplayFunction:(int)atIndex 
{
     FacebookWallData* wall = nil;
     wall = [facebook_wallDataArray objectAtIndex:atIndex];
     [tableList addObject:wall.messages];
}

E:另一件事,你正在静态循环10次,我认为最好使用数组的计数,如果数组的大小改变了,但是你忘记了更改for循环中的数字,那么你会得到一个异常,这将破坏你的应用程序。

我更改了代码,但现在我在调用函数的循环中获得EXC-BAD_访问权限。在这一行“[self-facebookDisplayFunction:i];”。我还将static number更改为array count。当我想一次又一次调用函数时,它会抛出exception。然后你又一次覆盖了某些内容,你需要手动释放的唯一地方是在第一个循环中,而不是在它之后的循环中
"<FacebookWallData: 0x4c52ee0>",
"<FacebookWallData: 0x4c52df0>",
"<FacebookWallData: 0x6828300>",
"<FacebookWallData: 0x6826d50>",
"<FacebookWallData: 0x4e25a10>",
"<FacebookWallData: 0x9317c60>",
"<FacebookWallData: 0x4c53190>",
"<FacebookWallData: 0x4e47e90>",
"<FacebookWallData: 0x4c53380>",
"<FacebookWallData: 0x93176e0>",
-(void) facebookDisplayFunction:(int)atIndex 
{
     FacebookWallData* wall = nil;
     wall = [facebook_wallDataArray objectAtIndex:atIndex];
     [tableList addObject:wall.messages];
}