编译器错误 – Xcode 4内部编译器错误:总线错误

前端之家收集整理的这篇文章主要介绍了编译器错误 – Xcode 4内部编译器错误:总线错误前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Xcode 4.0.1已经开始给我一个内部编译器错误.它只是说“总线错误”.它发生在我的一个.m文件底部,现在差不多有4000行.

我已经看了this question,但我没有犯这个错误,当它出现时,我通常可以通过在某处添加一些随机代码来修复它.当它第一次出现时,我将它追踪到我在一堆新代码中设置视图框架的位置:

view.frame = CGRectMake(otherView.frame.origin.x,otherView2.frame.size.width,40);

如果我用硬编码值替换了otherView和otherView2引用,问题就消失了.或者如果我只是把int x = 0;在违规线之上,它消失了.

我也看过this question,但它没有明确的答案.它似乎不是任何单独的代码行;它只是随机出现.谷歌没有任何我能找到的明确解决方案.

我已经尝试了所有可能的项目编译器(GCC 4.2,LLVM GCC 4.2和LLVM编译器2.0,它们都有问题.我将静态分析器设置为运行每个构建,并关闭它不会帮助.This question似乎表明它是编译器中的一个错误.我只是卡住了吗?有解决方法吗?

编辑:另一个例子:它再次发生,我追踪到:

[headerView centerViewVertically:milesLabel pixelsFromRight:pointLabel.frame.size.width + 20];

我改成了:

int x = pointLabel.frame.size.width;
[headerView centerViewVertically:milesLabel pixelsFromRight:x + 20];

它再次起作用.

解决方法

我发现了这个错误,结果发现错误是我的,基本上是由类型o引起的,或者更准确地说是一个粘贴o.

我正在创建两个标签并将它们添加到子视图中.代码基本上就像这样.

UILabel *pointsLabel = [[UILabel alloc] initWithFrame:ptsFrame];
...
[self addSubview:pointsLabel];
[pointsLabel release];

UILabel *typeLabel = [[UILabel alloc] initWithFrame:typeFrame];
...
[self addSubview:pointsLabel];
[typeLabel release];

请注意,在第二个addSubview中,我再次添加了pointsLabel,即使我已经发布了它(并且真的是要添加typeLabel).我希望这也会导致运行时错误,但无论出于何种原因,它都会导致上面描述的总线错误.要寻找的东西.

猜你在找的iOS相关文章