componentsJoinedByString给了我EXC_BAD_ACCESS

时间:2010-11-30 15:24:37

标签: cocoa nsmutablearray exc-bad-access

我有一个NSMutableArray我正在尝试转换为字符串 声明我的NSMutableArray ......

    NSMutableArray *listData;  

后来在方法中......

NSString *foo = [listData componentsJoinedByString:@"|"];  
NSLog(@"%@",foo);  

似乎无论我尝试什么,我都会继续获得EXC_BAD_ACCESS 为了确保我的数组中的每个元素都是NSString,我也试过了......

NSMutableArray *mArray = [[NSMutableArray alloc] init];  
for (id ln in listData) {  
    NSString *boo = [NSString stringWithFormat: @"%@",ln];  
    [mArray addObject:boo];  
}  
NSString *foo = [mArray componentsJoinedByString:@"|"];  
NSLog(@"%@",foo);  

我可以通过在同一个方法中添加/删除对象或我班级中的其他方法来操纵我的NSMutableArray。但是当我尝试“componentsJoinedByString”时会弹出错误。有没有人有任何建议或其他方式我可以将这个数组合成一个NSString?

1 个答案:

答案 0 :(得分:1)

在您提供的代码中,NSMutableArray永远不会有listData。在代码中的某个时刻,您需要创建一个,并且可能填充它。

修改 好的,所以你可能会遇到内存管理问题,所以让我们更清楚一点:

您正在为实例变量合成getter和setter,因此最好使用它们来访问它,它们会妥善保留和释放。

要设置listData,您只需使用

即可
self.listData = [listManage getList:[[NSUserDefaults standardUserDefaults] stringForKey:@"list_name"] list:@"LIST"]; 

[self setListData:[listManage getList:[[NSUserDefaults standardUserDefaults] stringForKey:@"list_name"] list:@"LIST"]];

如果您愿意。