2010-06-03 3 views
1

Получение ошибки: несовместимый тип в назначении на FValue = ... см коднесовместимого типа в назначении

static float t = 0;   
float d = .5;   
static float fValue = 0;   
fValue = [self easeOutBounce:t andB:0 andC:30 andD:d]; 

здесь метод

-(float) easeOutBounce:(float)t andB:(float)b andC:(float)c andD:(float)d { 
    if ((t/d) < (1/2.75)) { 
     return c*(7.5625*t*t) + b; 
    } else if (t < (2/2.75)) { 
     return c*(7.5625*(t-(1.5/2.75))*t + .75) + b; 
    } else if (t < (2.5/2.75)) { 
     return c*(7.5625*(t-(2.25/2.75))*t + .9375) + b; 
    } else { 
     return c*(7.5625*(t-(2.625/2.75))*t + .984375) + b; 
    } 
} 
+0

Не знаю, если это связано, но вы не пропуская «*» в последние 2 возвратных заявления? –

+0

В описании '@ interface' этого класса содержится метод' easeOutBounce: andB: andC: andD: '? – dreamlax

+0

Пожалуйста, напишите полный вывод компилятора для данного файла. Мое лучшее предположение заключается в том, что вам не хватает других предупреждений, например, компилятор не видел объявления метода, поэтому он предположил, что возвращает id. –

ответ

1

Когда компилятор встречает неизвестный метод (т.е. метод, который используется, но не был объявлен в @interface или ранее определен в @implementation), компилятор выдаст предупреждение и предположим, что метод возвращает id, который является типом указателя, который вы можете ' t назначить a float типа.

Убедитесь, что ваш @interface имеет декларацию для вашего метода easeOutBounce:andB:andC:andD:, или, по крайней мере, убедитесь, что этот метод определен выше код, который использует его.

Например:

@interface MyClass : NSObject 
{ 
    float myVar; 
} 
-(float) easeOutBounce:(float)t andB:(float)b andC:(float)c andD:(float)d; 
@end 
Смежные вопросы