Xcode 4内部编译器错误:总线错误
Xcode 4.0.1已经开始给我一个内部编译器错误。 它只是说“总线错误”。 它发生在我的一个.m文件的底部,现在它差不多有4000行。
我已经看过这个问题,但我没有犯这个错误,当它出现时,我通常可以通过在某处添加一些随机代码行来修复它。 当它第一次出现时,我将它追踪到我在一堆新代码中设置视图框架的位置:
view.frame = CGRectMake(otherView.frame.origin.x, 0, otherView2.frame.size.width, 40);
如果我用硬编码值替换otherView和otherView2引用,问题就消失了。 或者,如果我只是把int x = 0;
在违规路线上方,它消失了。
我也看过这个问题,但没有明确的答案。 它似乎不是任何单独的代码行; 它只是表面上随机出现。 Google没有任何我能找到的明确解决方案。
我已经尝试过所有可能的项目编译器(GCC 4.2,LLVM GCC 4.2和LLVM Compiler 2.0),他们都有问题,我设置了静态分析器来运行每个构建,关闭它不会这个问题似乎表明它是编译器中的一个错误,我只是卡住了吗?是否有解决方法?
编辑:另一个例子:它再次发生,我追查到:
[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
),我再次添加了typeLabel
。 我希望这也会导致运行时错误,但无论出于何种原因,它都会导致上述的总线错误。 需要寻找的东西。
我刚刚发生了这种情况(不是第一次)。 我仍然没有弄清楚究竟是什么导致了这个问题,但它会编译为模拟器,但不是为设备。 将我的[[array alloc] init]移出我的init方法并转入单独的设置方法可解决此问题。
也许我在太短的时间内分配了太多内存? 这似乎不太可能,因为有几个[[array alloc] init]数组设置是在我试图添加的之前和之后完成的。所有事情的完成方式与其他数组的完成方式完全相同,为什么它是一个这一次的问题是我还不明白的。
我也遇到了这个错误,只有在设备上进行编译时,xcode执行了我的代码的现代化之后。 我在项目和目标构建设置中将编译器切换到Apple LLVM 2.1,然后再次运行。 这拾起了一些流浪; 在项目中,错误总线错误消失了。
链接地址: http://www.djcxy.com/p/6027.html