Ошибка в версии дистрибутива Не появляется в разработке - PullRequest
0 голосов
/ 13 декабря 2011

У меня есть приложение для викторины, которое я создал, и я получил сообщения об ошибках по некоторым вопросам с изображениями, которые не были правильно выложены. У меня проблема в том, что в разработке этого не происходит. Отчет об ошибке на втором поколении Ipod Touch работает 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 голосов
/ 13 декабря 2011

В одном из компиляторов, поставляемых с Xcode 4.2, была ошибка, из-за которой он неправильно компилировал код большого пальца для armv6.Одним из способов, которым это проявилось, было вмешательство в CGRect и подобные структуры, которые явно искажали макеты.

Временным обходным решением было отключение большого пальца для armv6, но ошибка была исправлена ​​в Xcode 4.2.1.Вы обновили версию с 4.2 до 4.2.1 с момента отправки приложения в App Store?Возможно, именно поэтому вы не можете воспроизвести ошибку сейчас.

Вероятно, вы можете исправить ошибку, просто перекомпилировав с последней версией Xcode и повторно отправив.Я бы откатился к более ранней версии XCode и по возможности заранее проверил с реальным устройством.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...