【问题标题】:How to read this crash log?如何阅读此崩溃日志?
【发布时间】:2011-10-10 04:12:28
【问题描述】:

对于任何试图阅读此问题的人,我和 Jonas 之间已经进行了广泛的讨论,并且问题在讨论过程中发生了多次变化,因此重申我们在此处所经历的一切是没有用的。如果您在阅读崩溃日志时遇到问题,请参阅 stackoverflow 上的this 问题!感谢您的理解。

Jonas:这是我在上一条评论中提到的代码 sn-p:

if ([performance.favorites integerValue] == 1) {
        UIImage *starImage = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"fav-star" ofType:@"png"]];

        cell.favoritesImage.image = starImage;
    }
    else
    {
        cell.favoritesImage.image = nil;
    }

那么,如果else 块被执行,如果一个未显示收藏夹图像的TableViewCell 正在被释放,这是否会使[favoritesImage release] 调用崩溃?

所以我可以简单地而不是将其设置为 nil,而是添加一个 alpha 设置为 0 的随机图像以具有相同的效果但没有任何内存泄漏?

【问题讨论】:

  • 我认为您的问题的答案在这篇文章中有所描述:[Symbolicating iPhone App Crash Reports][1] [1]: stackoverflow.com/questions/1460892/…
  • 我在看那个帖子,但我真的不明白该怎么做,因为我主要是一个 Windows 用户,因此不习惯终端和这样的东西.. :-/ 但我会尝试..
  • 我真的试过了.. 我存档了应用程序,获取了 dSYM 文件和应用程序文件,从模拟器中获取了一个崩溃日志,并将它们放入一个文件夹并尝试了第二个答案您发布的问题,它不起作用..请帮助:/
  • (顺便说一句:酷一个 polyball 2011 应用程序;瑞士?)
  • 是的脸红..应该把那个剪掉..

标签: ios crash crash-reports


【解决方案1】:

“阅读”崩溃报告并不总是那么容易。 您发送的两个没有显示任何“自己编码”的方法。

你有“EXC_BAD_ACCESS”,所以我几乎会说:“这是一个内存释放/保留问题”: 你可能会提前发布一些 UITableView 的东西。

您是否检查过 UITableViewCell 是否正确自动释放? UITableViewCell 中的所有子视图和对象是否都自动释放或至少没有释放到 0?

更多细节:

1) 我永远不会通过 NIB/XIB 创建 UITableViewCell 子类。你失去了很多性能。我建议您通过编码创建 UITableViewCell 子类。 请记住:XIB (xml) 的放气需要时间,当您滚动浏览 UITableView 时,可能会出现丑陋的情况。

2) 对于您遇到的内存问题:检查:How do you load custom UITableViewCells from Xib files? autorelease 不是正确的。

【讨论】:

  • 嗯..我正在使用自定义表格视图单元格,它们都有标签和东西,它们都保留并简单地在“dealloc”上释放..这会导致问题吗?如果你喜欢,我可以发布代码
  • 我不是 100% 确定它是否是发布/保留崩溃(但 95%,;))。当您发布更多代码时,我可以查看它。
  • tableviewcell 部分:我想看看您如何构建 UITableViewCell 以及如何从 cellForRow 挂钩返回它
  • 我在问题中添加了代码。我希望通读不会太多:)
  • 1) 我永远不会通过 NIB/XIB 创建 UITableViewCell 子类。你失去了很多性能。我建议您通过编码创建 UITableViewCell 子类。 2)对于您遇到的内存问题:检查:stackoverflow.com/questions/540345/… autorelease 不是正确的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-24
相关资源
最近更新 更多