componentsJoinedByString给我EXC_BAD_ACCESS
问题描述:
我有一个NSMutableArray我想转换成一个字符串。
声明我的NSMutableArray ...componentsJoinedByString给我EXC_BAD_ACCESS
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?
答
在您提供的代码中,listData
永远不会有NSMutableArray
。在你的代码中的某个时刻,你需要创建一个,并且可能会填充它。
编辑 好了,你可能会进入内存管理的问题在这里,让我们可以更清楚一点:
你合成的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"]];
如果你喜欢。
如何/你在哪里创建和填充`listData`? – paulbailey 2010-11-30 15:29:21
在我的类头文件中我声明属性listData。 @property(nonatomic,retain)NSMutableArray * listData;在我的.m文件中,我将它合成并释放它。我通过另一个称为loadList的方法来填充列表,该方法从存储的plist文件获取数据。 “NSMutableArray * tmpList = [[NSMutableArray alloc] initWithContentsOfFile:filePath]; return tmpList;” – 2010-11-30 15:32:22