2015-09-14 2 views
1

У меня есть эта функция:Ошибка при помощи NSMutableArray двойного

- (NSMutableArray) getXYbyLLA: (metaio::LLACoordinate) lla 
{ 
NSMutableArray *res = [[NSMutableArray alloc] initWithCapacity:0];   

double latitude = lla.latitude; 
double longitude = lla.longitude; 

int mapWidth = 200; 
int mapHeight = 100; 

double partialCalc = 0.5555555555555556;         


double x = (longitude+180)*partialCalc;         

[res addObject:[NSNumber numberWithDouble:x]];        


double latRad = latitude * M_PI/180; 


double mercN = log(tan((M_PI/4)+(latRad/2))); 
double y = (mapHeight/2)-(mapWidth*mercN/(2 * M_PI)); 

[res addObject:[NSNumber numberWithDouble:y]];        

return res; 


} 

Но я получаю эту ошибку при возврате:

Невозможно инициализировать обратный объект типа NSMutableArray с Lvalue типа NSMutableArray

+1

Обратите внимание, что с помощью синтаксиса литерала для 'NSNumbers' может сделать код более удобным для чтения:' [Рез AddObject: [NSNumber numberWithDouble: х]] ; 'to' [res addObject: @ (x)]; ' – zaph

+0

спасибо, я делаю это – Ravo86

ответ

3

Вы забыли положить * в подпись метода. Вы возвращаете NSMutableArray *, но в методе вы пишете только NSMutableArray.

Вместо:

- (NSMutableArray) getXYbyLLA: (metaio::LLACoordinate) lla 

Использование:

- (NSMutableArray *) getXYbyLLA:(metaio::LLACoordinate)lla 
+0

спасибо и извините за этот вопрос. Теперь все в порядке – Ravo86

+0

Тщательное чтение сообщений об ошибках - это ключ. Но это распространенная ошибка, я часто делаю это между ObjC и Swift. – zaph

+0

@ Ravo86: Не говорите, извините. Это распространенная ошибка. Но вы должны доверять компилятору прежде всего кому-то еще :) и проверить эти сообщения об ошибках и предупреждающие символы. Это поможет вам найти проблему. Счастливое кодирование !!! –

Смежные вопросы