- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
@try {
if ([segue.identifier isEqualToString:@"taskListSegue"])
{
MindMapInformationViewController_iPhone *taskListContentController = [segue destinationViewController];
int selectedIndexPath = [[self.tableView indexPathForSelectedRow] row];
MindMap *newMindMap;
newMindMap = [mindmaps objectAtIndex:selectedIndexPath];
FileManager *fileManager = [[[FileManager alloc] init] autorelease];
[fileManager readFile:newMindMap.pathToMindmapAtDevice parsing:YES];
NSMutableArray *taskArray = [fileManager getArray];
[taskListContentController setTasksOfSelectedMindmap:taskArray];
}
}
@catch (NSException *exception) {
}
}
-(void)setTasksOfSelectedMindmap:(NSMutableArray *)tasks {
@try {
[self initComponents];
if (tasks != nil) {
taskArray = tasks;
}
}
@catch (NSException *exception) {
}
}
-(void)initComponents {
@try {
taskArray = [[NSMutableArray alloc] init];
taskName = [[NSMutableArray alloc] init];
taskOwner = [[NSMutableArray alloc] init];
}
@catch (NSException *exception) {
}
}
-(void)viewDidLoad
{
@try {
[super viewDidLoad];
int i = 0;
for (MindMapTask *newTask in taskArray) {
if (newTask.taskOwner == nil) {
newTask.taskOwner = @"Keine Angabe";
}
[taskName addObject:newTask.taskTitle];
[taskOwner addObject:newTask.taskOwner];
i++;
}
}
@catch (NSException *exception) {
NSLog(@"Exception - %@", exception);
}
}
为什么我得到EXC_BAD_ACCESS
?此异常的生产者似乎是[super viewDidLoad]; ...
任何人都可以帮助我吗? :)
编辑:改变了一下代码..希望它可以理解
你可以看到,我将数组的定义移到了一个自己的方法中。我还添加了一个方法来确保taskTitle不是nil(在另一个类中)。
答案 0 :(得分:4)
尝试放
[super viewDidLoad];
作为第一个声明。
答案 1 :(得分:1)
确保newTask.taskTitle
不是NULL。
答案 2 :(得分:0)
taskArray仍然是一个有效的对象吗?它在哪里定义?它可能是自动释放的吗?
在函数开头添加断点时,所有对象都有效吗? (您可以在调试控制台中使用“po”检查,例如“po taskArray”)