gpt4 book ai didi

ios - 在 iOS 中解析 JSON 时出现 NSSingleObjectArrayI 错误?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:52:54 27 4
gpt4 key购买 nike

在我的代码中,当我解析 API 时,我得到了类似 __NSSingleObjectArrayI 为 nil 的错误,但是数组是否有值。

这里我给出了我的部分代码..

latitudeArray = [monumentArray valueForKey:@"lat"];
NSLog(@"latitudeArray is %@",latitudeArray);
longitudeArray = [monumentArray valueForKey:@"lng"];
NSLog(@"longitudeArray is %@",longitudeArray);

for (int i = 0; i<3; i++) {

CLLocation *locationA = [[CLLocation alloc] initWithLatitude:[latStr doubleValue] longitude:[longStr doubleValue]];
CLLocation *locationB = [[CLLocation alloc] initWithLatitude:[[latitudeArray objectAtIndex:i] doubleValue] longitude:[[longitudeArray objectAtIndex:i] doubleValue]]; ----------> This Line I Got The Crash Error..

CLLocationDistance distanceInMeters = [locationA distanceFromLocation:locationB];
NSLog(@"distanceInMeters is %f",distanceInMeters);
float i = distanceInMeters/1000;
NSLog(@"distance between two places is %f KM", i);

//[locationDistances addObject:distanceInMeters];
}

NSSingleObjectArrayI 是什么意思?

*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSSingleObjectArrayI objectAtIndex:]: index 1 beyond bounds [0 .. 0]'

请帮我解决一下。

latitudeArray 有值...

latitudeArray is (
(
(
(
(
"27.1753210000",
"27.1798189999",
"27.1928780000"
)
)
)
)

)

最佳答案

首先要澄清一些混淆:NSSingleObjectArray 只是 NSArray 的一个特例,用于具有单个元素的数组;这种情况经常发生,为这种情况准备一个特殊的、较小的对象可以节省空间。 (甚至还有一个空数组的类,它有一个单例实例;所有的空数组都是同一个对象!)。所以假设它是一个 NSArray。

异常清楚地表明您试图访问一个不存在的数组元素。当您的数组只有一个元素时,您试图访问索引 1 处的元素,因此只能访问索引 0 处的元素。

很明显,您希望 longitudeArray 具有三个元素,但它只有一个。我敢打赌 monumentArray 不是数组,所以不要在数组中调用它。

当您处理 JSON 时,您必须检查您收到的数据是否符合您的预期,否则如果您的服务器不正确,您的应用最终崩溃。准确发送您所期望的内容。

关于ios - 在 iOS 中解析 JSON 时出现 NSSingleObjectArrayI 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40396819/

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