NSDataDetector
文字列からアドレスを使用しようとしています。NSHipster の記事NSDataDetector
とApple の NSDataDetector のドキュメントを見てきました。文字列からアドレスを引き出すところまで、次の方法があります。
func getAddress(from dataString: String) -> [String] {
let detector = try! NSDataDetector(types: NSTextCheckingResult.CheckingType.address.rawValue)
let matches = detector.matches(in: dataString, options: [], range: NSRange(location: 0, length: dataString.utf16.count))
var addressArray = [String]()
// put matches into array of Strings
for match in matches {
let address = (dataString as NSString).substring(with: match.range)
addressArray.append(address)
}
return addressArray
}
住所全体ではなく、住所の要素を抜き出したい。Data Detector の一致タイプセクションのNSHipsterのNSDataDetector
投稿では、 、、などのアドレス コンポーネントが表示されます。の初期化でこれらのキーを使用できません。NSTextCheckingCityKey
NSTextCheckingStateKey
NSTextCheckingZIPKey
NSDataDetector
私は GitHub を掘り下げて、盗用する例を見つけることができるかどうかを確認しましたが、見つけることができるのは、Objective-C コードまたはマスター Swift リポジトリの宣言型のものだけです。
住所の個々のコンポーネントを引き出すことができると 99% 確信していますが、それを理解するにはあまりにも愚かです。読んでくれてありがとう。提案を歓迎します。