gpt4 book ai didi

ios - 将 'NSNumber *__strong' 发送到不兼容类型 'CLLocationDegrees' 的参数(又名 'double' )

转载 作者:可可西里 更新时间:2023-11-01 04:40:13 31 4
gpt4 key购买 nike

NSNumber * latitude =  [NSNumber numberWithDouble:[[cityDictionary valueForKeyPath:@"coordinates.latitude"]doubleValue]];

NSNumber * longitude = [NSNumber numberWithDouble:[[cityDictionary valueForKeyPath:@"coordinates.longitude"]doubleValue]];


CLLocation *listingLocation = [[CLLocation alloc] initWithLatitude:latitude longitude:longitude];

我在上面的第 3 行收到以下错误:

Sending 'NSNumber *__strong' to parameter of incompatible type 'CLLocationDegrees' (aka 'double')

我知道这是因为我正试图将 NSNumber 传递到它期望 double 值的地方。但是由于 ARC,转换不工作?

最佳答案

[cityDictionary valueForKeyPath:@"coordinates.latitude"] 的调用已经为您提供了一个 NSNumber 对象。为什么要将其转换为 double 然后创建一个新的 NSNumber

你可以这样做:

NSNumber *latitude = [cityDictionary valueForKeyPath:@"coordinates.latitude"];
NSNumber *longitude = [cityDictionary valueForKeyPath:@"coordinates.longitude"];
CLLocation *listingLocation = [[CLLocation alloc] initWithLatitude:[latitude doubleValue] longitude:[longitude doubleValue]];

如果事实证明 [cityDictionary valueForKeyPath:@"coordinates.latitude"] 实际上返回的是 NSString 而不是 NSNumber,然后这样做:

CLLocationDegrees latitude = [[cityDictionary valueForKeyPath:@"coordinates.latitude"] doubleValue];
CLLocationDegrees longitude = [[cityDictionary valueForKeyPath:@"coordinates.longitude"] doubleValue];
CLLocation *listingLocation = [[CLLocation alloc] initWithLatitude:latitude longitude:longitude];

关于ios - 将 'NSNumber *__strong' 发送到不兼容类型 'CLLocationDegrees' 的参数(又名 'double' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13433234/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com