分发版本中的错误未显示在开发中

时间:2011-12-12 22:45:18

标签: objective-c uibutton distribution

我有一个我构建的测验应用程序,并且已经获得了一些问题的错误报告,图像的答案没有正确布局。我遇到的问题是在开发过程中不会发生这种情况。错误报告是第二代Ipod触摸运行4.2.1我设法得到一个用于测试。

以下是开发和发行版本的截图。

http://farm8.staticflickr.com/7169/6501675055_1ea8c3d18b.jpg

http://farm8.staticflickr.com/7015/6501727253_ddc0fb616f.jpg

(显然我不够信任发布图片)

这是我写的创建和布局这些按钮的内容

for (int i =0; i < question.buttonTitles.count; i++) {
    NSLog(@"add images for answer: %@", [question.buttonTitles objectAtIndex:i]);
    UIImage * image = [UIImage imageNamed:[question.buttonTitles objectAtIndex:i]];
    float x = 0.0f;
    float y = 0.0f;
    float width = image.size.width;;
    float height = image.size.height;
    NSLog(@"%@", NSStringFromCGSize(image.size));

    if (question.buttonTitles.count != 4) {
        x = (293.0 - width) / 2.0;
        y = questionLabel.frame.origin.y + questionLabel.frame.size.height + (i * height) + (12 * (i));
    }else{
        switch (i) {
            case 0:
                x = (self.frame.size.width/2) - 7 - width;
                y = (self.frame.size.height/2 + questionLabel.frame.size.height/2) - 7 - height;
                break;
            case 1:
                x = (self.frame.size.width/2) + 7;
                y = (self.frame.size.height/2 + questionLabel.frame.size.height/2) - 7 - height;
                break;
            case 2:
                x = (self.frame.size.width/2) - 7 - width;
                y = (self.frame.size.height/2 + questionLabel.frame.size.height/2) + 7;
                break;
            case 3:
                x = (self.frame.size.width/2) + 7;
                y = (self.frame.size.height/2 + questionLabel.frame.size.height/2) + 7;
                break;
        }
    }
    UIButton *imageButton = [UIButton buttonWithType:UIButtonTypeCustom];
    imageButton.frame = CGRectMake(x, y, width, height);
    [imageButton setImage:image forState:UIControlStateNormal];
    [self addSubview:imageButton];
    SEL functionName;
    functionName = NSSelectorFromString([buttonFunctions objectAtIndex: i]);
    [imageButton addTarget:self action: functionName
          forControlEvents:UIControlEventTouchUpInside];
}

1 个答案:

答案 0 :(得分:0)

Xcode 4.2附带的一个编译器中存在一个错误,它错误地编译了armv6的缩略图代码。其中一种表现方式是干扰CGRect和类似的结构,这显然会破坏布局。

临时解决方法是禁用armv6的拇指,但该错误已在Xcode 4.2.1中修复。自从将应用程序提交到App Store后,您是否已从4.2升级到4.2.1?这可能就是为什么你现在无法重现这个错误的原因。

您可以通过使用最新版本的Xcode重新编译并重新提交来修复该错误。我会回滚到早期版本的Xcode,并尽可能事先用实际设备进行验证。