在应用程序中使用位置管理器,以下代码在iOS7之前工作,现在使用iOS7,我得到了“??”逃逸。我正在查找州检索州名缩写。位置管理器正在正确检索状态(如果我编码使用“状态”它将给我所需的状态),但查找plist文件(设置为字典对象)以获取缩写,无论出于何种原因失败并给出“??”选项。任何想法是什么?
NSString *state = placemark.administrativeArea;
NSString *stateAbbreviation = [self.usStateAbbreviations objectForKey:[state uppercaseString]];
NSString *stateTarget = state;
if (stateAbbreviation) {
stateTarget = stateAbbreviation;
}else{
stateTarget = @"??";
}
答案 0 :(得分:0)
来自另一个question:
对于iOS6,我得到行政区域的全名(例如 “加利福尼亚”),但对于iOS7,我得到了“CA”的价值。
所以,似乎状态已经是iOS7上的 stateAbbreviation ,所以关键是不同的,你得不到结果:
[self.usStateAbbreviations objectForKey:[state uppercaseString]];
根据Apple的CLPlacemark文档:
此属性中的字符串可以是拼写出来的名称 行政区域或其指定的缩写(如果存在)。如果 地标位置是Apple的总部,例如,价值 对于此属性,将是字符串“CA”或“California”。
所以似乎没有任何保证,无论如何。