【问题标题】:EXC_BAD_SIGNAL during loading of nib file in iphone在 iphone 中加载 nib 文件期间的 EXC_BAD_SIGNAL
【发布时间】:2011-09-29 11:59:06
【问题描述】:

我在我的应用程序中集成了 facebook api。我将所有墙值存储在数组中,并将其显示在我的 tableview NIB 文件中。但是登录后,我在 main.m 中遇到了 EXC_BAD_ACCESS 异常。

int retVal = UIApplicationMain(argc, argv, nil, nil);

我能够追踪价值。这是我加载 nib 文件的代码。

facebookData=[[[[NSArray alloc]initWithArray:result]retain]autorelease];
Fave *bController = [[[Fave alloc] initWithNibName:@"Fave" bundle:nil]autorelease];
[self.navigationController pushViewController:bController animated:YES];
[bController release];

这里的 facebookdata 是在 main.m 文件中定义的一个数组。我在这个数组中存储了墙的值,在下一个 Fave nib 文件中,我正在显示数组中的值。为什么在加载 nib 文件时出现此错误。

提前致谢

【问题讨论】:

  • @kay.. 请不要看到问题标题。理解逻辑。在我之前的问题中,我遇到了数组初始化的问题。这个线程我在 main.m 文件中有问题。
  • @uvesten,我猜这个问题出现在 Fave 类中。可能是我的表格列表错了,但我没有猜到我在哪里做错了。

标签: iphone exc-bad-access


【解决方案1】:

您已经自动释放了 Fave View Controller,并且再次释放了它。 不要那样做

这样做

Fave *bController = [[Fave alloc] initWithNibName:@"Fave" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController:bController animated:YES];
[bController release];

您为什么要保留并自动发布.. 那很糟糕。 就这样给吧

facebookData=[[NSArray alloc]initWithArray:result];

将来你不需要 facebookData 然后发布它

【讨论】:

  • 我在两个地方都做了修改。但仍然是相同的结果。我在控制台上看到了这个 [Switching to process 2937 thread 0x207]。
  • 我是否应该在最喜欢的课程中自动释放表格列表 (NSMutableArray *tableList)。 ?
  • 谢谢。它现在正在工作。这是我的表格列表的问题。我在 dealloc 函数中释放它。现在这正在工作。
【解决方案2】:

请这样写你的代码...

facebookData=[[NSArray alloc]initWithArray:result];
Fave *bController = [[Fave alloc] initWithNibName:@"Fave" bundle:nil];
[self.navigationController pushViewController:bController animated:YES];
[bController release];

如果您的 Fave Controller 不包含任何内存泄漏,您只能释放 [bController release]...

并且您保留了数组并使其自动释放,这是一个坏习惯..请改变它..

快乐编码...

【讨论】:

    猜你喜欢
    • 2011-05-05
    • 1970-01-01
    • 2011-09-06
    • 2013-03-27
    • 2012-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    相关资源
    最近更新 更多