2011-11-08 40 views
0

你好,我正在从核心数据实体获取记录,并在tableview中显示它。 当我查看记录并返回时,我的应用程序崩溃,但并非全部时间。 这里是我的代码应用程序崩溃与不同类型的异常

//负荷现有歌词

- (void)loadLyricsForSong { 
    NSMutableArray *arrayOfLyrics = [[NSMutableArray alloc] initWithArray:[song.songLyrics allObjects]]; 
     NSSortDescriptor *nameDescriptor = [[NSSortDescriptor alloc]initWithKey:@"startTime" ascending:YES];//name wise sorting in asecending order 

     NSArray *sortDescriptors = [[NSArray alloc]initWithObjects:nameDescriptor,nil]; 
     [arrayOfLyrics sortUsingDescriptors:sortDescriptors]; 


     [self setLyricsArray:arrayOfLyrics];//setting mutable array with places 
     [nameDescriptor release]; 
     [sortDescriptors release]; //releasing objects 
     [arrayOfLyrics release]; 
     [self.tableView reloadData]; 

    } 

我呼吁viewWillAppear中此loadLyricsForSong方法。并发布lyricsArray在dealloc方法..

和异常

> *** -[UITouchData retain]: message sent to deallocated instance 0x5da0860 
> *** -[NSConcreteNotification retain]: message sent to deallocated instance 0x5d919b0 
> *** -[CFArray retain]: message sent to deallocated instance 0x5b47d30 

请帮助.. 预先感谢

回答

1

什么是你@property声明lyricsArray样子?如果它设置为assign而不是retain,那么这段代码将导致崩溃。确保它设置为retain

+0

此外,谷歌有关启用'NSZombies'的信息,因为这可以让你保留至少一些关于释放对象的信息。但是,它会让您的应用程序消耗更多内存,并且应该关闭生产版本。 – Tim

+0

@property(nonatomic,retain)NSMutableArray * lyricsArray; – iProgrammer

+0

我启用了NSZombie又' – iProgrammer

相关问题