SIGABRT сообщение только с iOS5 - PullRequest
       5

SIGABRT сообщение только с iOS5

4 голосов
/ 18 октября 2011

Я сталкиваюсь со странным сбоем моего приложения, который происходит только с iOS5.Кажется, проблема связана с моим основным методом анимации ниже, потому что, когда я не устанавливаю значение для aAnimation.repeatCount или 0, он работает, но когда он вращается, я использую сообщение get SIGABRT с ошибкой: - [NSConcreteValue doubleValue]: нераспознанный селектор отправленЭкземпляр 0x9628100, когда я касаюсь экрана устройства / симулятора.

любая помощь будет оценена

Определение моего вида

- (void)loadView {
    CGRect screenRect = [[UIScreen mainScreen] applicationFrame];

    UIView  *contentView = [[UIView alloc] initWithFrame:screenRect];
    contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

    self.view = contentView;
    [contentView release];
}

настройка подпункта

- (void)setUpPlacardView:(NSInteger)picture {
    // Create the placard view -- its init method calculates its frame based on its image
    PlacardView *aPlacardView = [[PlacardView alloc] init:picture asColor:asColor];
    aPlacardView.desaturation = kotucHue;
    self.placardView = aPlacardView;
    [aPlacardView release];
    [self.view addSubview:placardView];
}

Определение SubView

@interface PlacardView : UIView {


    UIImage                 *placardImage;
    float                   saturation;
    UIColor                 *barva;
    BOOL                    switchMode;



}

@property (nonatomic, retain) UIImage *placardImage;
@property (nonatomic)       float     desaturation;
@property (readwrite) BOOL              switchMode;


// Initializer for this object
- (id)init:(NSInteger)picture asColor:(BOOL)farba;


@end

и поворот


- (void)makeKspinning
{
    // Create a transform to rotate in the z-axis
    float radians = 3.120;   
    CATransform3D transform;
    if (rotation) {
        transform = CATransform3DMakeRotation(radians, 0.0, 0.0, 0.0);
    }
    else
        transform = CATransform3DMakeRotation(radians, 0.0, 0.0, 1.0);


    CABasicAnimation *aAnimation;
    aAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];

        CALayer *pLayer = placardView.layer;

        aAnimation.toValue = [NSValue valueWithCATransform3D:transform];
        aAnimation.duration = spinSpeed;
        aAnimation.cumulative = YES;
        aAnimation.repeatCount = HUGE_VALF; 

        [pLayer addAnimation:aAnimation forKey:@"animatePlacardViewToSpin"];

        pLayer.opacity = spinOpacity;
}

1 Ответ

3 голосов
/ 18 октября 2011

Я думаю, проблема в том, что вы устанавливаете toValue на NSValue, но путь ключа - transform.rotation, который не является NSValue. Вы должны либо использовать transform в качестве ключевого пути, либо использовать transform.rotation.z (или любую другую ось) в качестве ключевого пути и простое NSNumber в качестве значения.

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