我有这个原始字符串101\U2013113 W 4th St
。
哪个应该读101-113 W 4th St
这个字符串来自CLPlacemark
placemark.addressDictionary[@"Street"]
但是,当我解码时:
NSData *decode = [placemark.addressDictionary[@"Street"] dataUsingEncoding:NSUnicodeStringEncoding allowLossyConversion:YES];
NSString * address = [[NSString alloc] initWithData:decode encoding:NSASCIIStringEncoding];
它在字符串的开头输出一些我无法粘贴的额外字符,但NSLog显示"\U00ff\U00fe101\^S 113 W 4th St Chattanooga TN 37402";
如果我NSLog
的地标,它读取它应该101-113 W 4th St
我究竟做错了什么?
我究竟做错了什么?
一切。 addressDictionary
已被弃用,在任何情况下都无需解码任何数据;地址信息已作为字符串发送给您。 (目前还不清楚应该是什么“原始”字符串;字符串是字符串。)您不能将字符串转换为ASCII,因为它可能(此处)包含nonASCII字符。只需使用你给的字符串。
CLPlacemark具有subthoroughfare
(门牌号)和thoroughfare
(街道名称)等属性,或者如果您想要整个地址,请使用CNPostalAddressFormatter获取其postalAddress
和格式(您需要导入Contacts框架)。