小编Taz*_*Taz的帖子

"EXC_BAD_ACCESS"," - [CFString retain]:在表格中滚动时发送到解除分配实例的消息"

应用说明:我是一名新的iPhone开发人员.我正在使用一个应用程序,它使用两个表视图,然后是详细视图.第一级表视图显示几个类别,当选择类别时,将显示与该类别相关的主题列表.选择主题后,将显示与该主题相关的详细视图.

当我在模拟器中运行应用程序时,一切似乎都运行良好(但只是简单!):

  • 第一级表视图:此视图与类别加载正常并且没有任何问题.
  • 主题列表视图:此视图似乎也可以正常工作,但只是简单.它加载了所有正确的主题,我甚至可以在整个主题列表中快速向上和向下滚动 - 但这只能在滚动时运行几秒钟(之后应用程序崩溃).我还可以选择任何主题并成功加载详细视图.
  • 细节视图:工作正常,没有问题.

我正在为应用程序使用两个nib:MainWindow.xib显示First Level和Topic View表.TopicDetail.xib用于显示主题的详细信息.

数据:第一级视图从包含字符串数组的plist获取其数据.主题列表视图从词典列表中获取其数据.每个字典由五个字符串组成.其中一个字符串包含与主题相关的类别的"标签".选择"第一级视图"中的类别时,"主题视图"将选择与所选类别匹配的"标签"主题,并将其显示在"主题视图表"上.

问题:我的问题在于第二个"主题视图".我可以通过几种方式导致崩溃:

  • 如果我快速向上和向下滚动主题列表,几秒钟内一切正常,那么应用程序崩溃.

  • 如果我从屏幕上滚动一个单元格,我可以将同一单元格滚动回屏幕而不会出现问题.如果我重复此操作(第二次从屏幕上滚动相同的单元格然后尝试将其滚动回屏幕),当将单元格滚动回屏幕时应用程序崩溃.

错误消息:返回的初始错误消息是EXC_BAD_ACCESS.当我启用NSZombieEnabled时,我收到错误消息" - [CFString retain]:消息发送到解除分配的实例 "

基于这些错误消息和我的研究,我相信我有一个内存分配问题,在已经发布的对象上调用"retain",但我无法弄清楚这个发生的位置以及如何解决它!任何帮助将不胜感激 - 谢谢你提前!!

码:

第一级视图Controller.h:

#import 
@class TopicListController;

@interface FirstLevelViewController : UITableViewController {
    NSArray *controllers;
    TopicListController *childController;
}
@property (nonatomic, retain) NSArray *controllers;
@end
Run Code Online (Sandbox Code Playgroud)

第一级视图Controller.m:


#import "FirstLevelViewController.h"
#import "TopicListController.h"
#import "TopicAppDelegate.h"

@implementation FirstLevelViewController
@synthesize controllers;

- (void)viewDidLoad
{
    self.title = @"Categories"; 
    NSString *path = [[NSBundle mainBundle] pathForResource:@"TopicCategoryList" ofType:@"plist"];  
    NSMutableArray *array = [[NSMutableArray …
Run Code Online (Sandbox Code Playgroud)

iphone xcode exc-bad-access uitableview

3
推荐指数
1
解决办法
5669
查看次数

标签 统计

exc-bad-access ×1

iphone ×1

uitableview ×1

xcode ×1