0

在应用程序中使用位置管理器,以下代码在 iOS7 之前有效,现在使用 iOS7,我得到“??” 逃脱。我正在查找州以检索州缩写。位置管理器正在正确检索状态(如果我编码使用“状态”,它将给我所需的状态),但是查找 plist 文件(设置为字典对象)以获取缩写,无论出于何种原因失败并给出这 ”??” 选项。有什么想法吗?

NSString *state = placemark.administrativeArea;
NSString *stateAbbreviation = [self.usStateAbbreviations objectForKey:[state uppercaseString]];
NSString *stateTarget = state;

if (stateAbbreviation) {
    stateTarget = stateAbbreviation;
}else{
    stateTarget = @"??";
}
4

1 回答 1

0

从另一个问题

对于 iOS6,我得到了行政区域的全名(例如“California”),但对于 iOS7,我得到了“CA”的值。

因此,该状态似乎已经是iOS7上的 stateAbbreviation ,因此键不同,您不会得到以下结果:

[self.usStateAbbreviations objectForKey:[state uppercaseString]];

根据 Apple 的CLPlacemark文档:

此属性中的字符串可以是行政区域的拼写名称,也可以是其指定的缩写(如果存在)。例如,如果地标位置是 Apple 的总部,则此属性的值将是字符串“CA”或“California”。

因此,无论哪种方式,似乎都没有保证。

于 2013-11-06T16:43:42.503 回答