Модификация CGFloat отправлена ​​в viewController - PullRequest
0 голосов
/ 16 декабря 2011

Это действительно странно.Я получаю значение CGFloat из моего представления и отправляю его на мой viewController, который передает его моему звуковому движку.Однако CGFloat модифицируется как-то между view и viewController.Совершенно в тупик.

Вот метод в представлении

-(void)mod:(CGFloat)value
{
    if(value < 0) value = 0.;
        if(value > self.bounds.size.width - 10)value =  self.bounds.size.width - 10.f;

            value =  value / (self.bounds.size.width - 10.f) ;
            NSLog(@"value %g", value);   ///prints a value between 0.0 - 1.0
            [viewController mod:value forVoice:voiceToPlay];
}

, который печатает значение в диапазоне от 0,0 до 1,0

, затем в моем viewController этот метод получает его ...

-(void)mod:(CGFloat)value forVoice:(NSUInteger)voice
{
    NSLog(@"mod in view control %g", value);

    [audioController mod:value forVoice:voice];
}

и это печатает совершенно неправильные числа, такие как 1.0842e-19, 2, -2

Возможно, это что-то простое, но я не могу понять, что это такое !!Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 16 декабря 2011

Я предполагаю, что когда вы компилируете эту программу, вы получите некоторые предупреждения (если вы их не отключили).Исправьте их, и это исчезнет.

В частности, убедитесь, что (a) mod: forVoice: объявлено в viewController.h (и что объявление соответствует реализации), и (b) что viewController.hвключены в файл реализации для вашего просмотра перед вызовом.

0 голосов
/ 16 декабря 2011

Я новичок, так что я не уверен в этом, но можете ли вы действительно изменить и переслать входное значение метода в другой метод? Разве вы не должны создать еще один CGFloat внутри вашего mod: метода, а затем отправить это значение в viewController?

...