使用 double 的 NSMutableArray 时出错
Error using NSMutableArray of double
我有这个功能:
- (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;
}
但我在 return 上收到此错误:
Cannot initialize return object of type NSMutableArray with an lvalue of type NSMutableArray
您忘记将 *
放入方法签名中。您正在返回 NSMutableArray *
但在方法签名中您只写 NSMutableArray
。
而不是:
- (NSMutableArray) getXYbyLLA: (metaio::LLACoordinate) lla
使用:
- (NSMutableArray *) getXYbyLLA:(metaio::LLACoordinate)lla
我有这个功能:
- (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;
}
但我在 return 上收到此错误:
Cannot initialize return object of type NSMutableArray with an lvalue of type NSMutableArray
您忘记将 *
放入方法签名中。您正在返回 NSMutableArray *
但在方法签名中您只写 NSMutableArray
。
而不是:
- (NSMutableArray) getXYbyLLA: (metaio::LLACoordinate) lla
使用:
- (NSMutableArray *) getXYbyLLA:(metaio::LLACoordinate)lla