- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我想知道是否可以从 CLPlacemark 获取州的缩写?
在 Apple 的 CLPlacemark Reference 中它指出:
行政区域与地标关联的州或省。 (只读)@property(nonatomic, readonly) NSString *administrativeArea讨论例如,如果地标位置是 Apple 总部,则此属性的值将是字符串“CA”或“California”。
但每当我使用它时,我只会得到完整的州(即加利福尼亚州)而不是缩写(即 CA)。有人可以帮我吗?
最佳答案
对于需要为此解决方案的任何其他人,我已经为 CLPlacemark 创建了一个返回短状态字符串的类别类。您需要做的就是调用 myPlacemark shortState
CLPlacemark+ShortState.h
#import <CoreLocation/CoreLocation.h>
#import <Foundation/Foundation.h>
@interface CLPlacemark (ShortState)
- (NSString *)shortState;
@end
CLPlacemark+ShortState.m
#import "CLPlacemark+ShortState.h"
@interface CLPlacemark (ShortStatePrivate)
- (NSDictionary *)nameAbbreviations;
@end
@implementation CLPlacemark (ShortState)
- (NSString *)shortState {
NSString *state = [self.administrativeArea lowercaseString];
if (state.length==0)
return nil;
return [[self nameAbbreviations] objectForKey:state];
}
- (NSDictionary *)nameAbbreviations {
static NSDictionary *nameAbbreviations = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
nameAbbreviations = [NSDictionary dictionaryWithObjectsAndKeys:
@"AL",@"alabama",
@"AK",@"alaska",
@"AZ",@"arizona",
@"AR",@"arkansas",
@"CA",@"california",
@"CO",@"colorado",
@"CT",@"connecticut",
@"DE",@"delaware",
@"DC",@"district of columbia",
@"FL",@"florida",
@"GA",@"georgia",
@"HI",@"hawaii",
@"ID",@"idaho",
@"IL",@"illinois",
@"IN",@"indiana",
@"IA",@"iowa",
@"KS",@"kansas",
@"KY",@"kentucky",
@"LA",@"louisiana",
@"ME",@"maine",
@"MD",@"maryland",
@"MA",@"massachusetts",
@"MI",@"michigan",
@"MN",@"minnesota",
@"MS",@"mississippi",
@"MO",@"missouri",
@"MT",@"montana",
@"NE",@"nebraska",
@"NV",@"nevada",
@"NH",@"new hampshire",
@"NJ",@"new jersey",
@"NM",@"new mexico",
@"NY",@"new york",
@"NC",@"north carolina",
@"ND",@"north dakota",
@"OH",@"ohio",
@"OK",@"oklahoma",
@"OR",@"oregon",
@"PA",@"pennsylvania",
@"RI",@"rhode island",
@"SC",@"south carolina",
@"SD",@"south dakota",
@"TN",@"tennessee",
@"TX",@"texas",
@"UT",@"utah",
@"VT",@"vermont",
@"VA",@"virginia",
@"WA",@"washington",
@"WV",@"west virginia",
@"WI",@"wisconsin",
@"WY",@"wyoming",
nil];
});
return nameAbbreviations;
}
@end
关于iphone - CLPlacemark - 国家缩写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11108424/
这是我在 StackOverflow 上找到的部分代码。 它在 Swift 1.2 中工作为什么此代码在 swift 2 中不再有效: geoCoder.reverseGeocodeLocation(
我有一个标签显示属于确切地理位置的街道名称。我正在从 placemarkStreet 变量中检索街道名称,它工作正常,但有时当我登录 placemark.thoroughfare 时,它是一个 (nu
我想显示用户位置的完整街道名称,使用以下代码我只能显示城市名称: -(void) reverseGeocode:(CLLocation *)location{ CLGeocoder *geoco
我想知道是否可以从 CLPlacemark 获取州的缩写? 在 Apple 的 CLPlacemark Reference 中它指出: 行政区域与地标关联的州或省。 (只读)@property(non
我正在尝试了解 CLPlacemark 以及何时/如何为添加到 map 的图钉标注创建信息。在我几年前在更多 iOS 3 开发中读到的内容之前,他们对地址进行了反向地理编码并构建了地址(街道、邮政编码
我找遍了所有地方,但没有找到这个问题的答案。 我正在构建一个使用用户位置(经纬度)的 iOS 应用程序创建一个 CLPlacemark,并将街道+国家/地区发送到服务器并根据此位置返回响应。 现在服务
几天前我几乎没有尝试在我的 iPhone 上的消息正文中嵌入我的当前位置,但我失败了。 我想尽了所有办法,但我只得到了错误 我得到的最后一个错误是 "fatal error: unexpectedly
我有一个尝试更新我的授权状态的方法。 使用 PromiseKit 6、Swift 4.2,我似乎无法让我的 Promise 成为一个 CLPlacemark。 这会导致一连串的错误 Value of
是否可以检查 CLPlacemark's 是否存在?名称是街道地址? 如果是购物中心、主题公园、学校或其他有趣的东西,我想显示名称,但如果是街道地址,则不显示。 我正在考虑使用这样的正则表达式来检查名
如何在 Swift 中将 MKMapItem 转换为 CLPlacemark? 我的代码给我一个编译器错误 'MKMapItem' is not convertible to 'CLPlacemark
谁能建议清洁工从 CLPlacemark 创建地址字符串。 目前我正在使用这个扩展 extension CLPlacemark { func makeAddressString() -> St
我有一个移动 CLPlacemark 对象并使用它们的应用程序,我想对与它们交互的几个组件进行单元测试。为此,我希望能够使用生成具有已知值的模拟 CLPlacemark 的方法来阻止 MapKit 对
我正在使用 MKLocalSearch 搜索某些地方,例如城市或城市中的街道,以在 MKMapView 上显示它们 我这样显示地标 let loc = placemark.location! //CL
我正在尝试检测地标值是否包含某些值。为此,我在 NSString 上使用了 rangeOfString 方法。但是,rangeOfString 可以像我期望的那样处理字符串,但不能像我期望的那样处理地
Reading the documentation ,苹果指向ABPerson在 CLPlacemark 的 addressDictionary 上使用的键。 但自 iOS 9 以来,ABPerson
当注销或发送(使用 RestKit 的 Web 服务)时,特别是 CLPlacemark 的 subThoroughfare 属性出现奇怪的字符,我希望连字符出现。 记录: NSLog(@"%@",
我必须从 CLPlaceMark 中取出 map_region 和类型,但在 CLPlaceMark 类中找不到可以提供 map_region 值的属性。 { placeData =
我正在尝试提取在 CLPlacemark 对象中返回的 dependentLocality 信息。数据(匿名)看起来像 { "cache_control" = CACHEABL
我使用 CLGeocoder 将 CLLocation 从经度/纬度解码为地名。它工作正常。但是还有一件事困扰着我。当我将设备语言设置为英语时,以下代码的结果: - (void)locationMan
我正在使用 CLGeocoder 进行反向地理定位并获取 CLPlacemark 数组。当我在美国境外使用 GPS(即 -27,127)然后访问 placemark.postalCode 时,应用程序
我是一名优秀的程序员,十分优秀!