Я пытаюсь преобразовать старую программу на C, содержащую некоторые статические методы, в Obj-c, но у меня возникли некоторые проблемы с ее компиляцией. В заголовочном файле я получил:
@interface Anneal : NSObject
...
...
+(float)approxInitT;
-(costType)simulatedAnnealing;
...
и в файле реализации два проблемных метода (также сокращены для краткости):
@implementation Anneal
+(float)approxInitT
{
float T=0.0;
int m2=0;
...
if(m2==0)
T = T_LIFESAVER;
else
T = T / m2 / log(initProb);
return T;
}
-(costType)simulatedAnnealing
{
float T;
...
if(Tset)
T=initialT;
else
T=[self approxInitT]; // error:incompatible types in assignment
}
К сожалению, я получаю сообщение об ошибке "несовместимые типы в присваивании", хотя 'T' и возвращаемый из метода класса оба имеют тип 'float'. Хотя код содержит несколько исходных файлов (от которых я ожидаю решить еще несколько проблем в ближайшие несколько дней), они оба находятся в одном и том же.
Эта проблема, очевидно, вызвана ошибкой в способе, которым я вызываю приближение «прибл.» (), Но поиск в Интернете до сих пор не нашел никаких ответов на мой вопрос.
Как новичок, у меня нет опыта работы с мультимодельным кодом ИЛИ с использованием статических методов / методов класса, и я, безусловно, буду признателен за любую помощь в этом. Заранее спасибо: -)