我在Swift中使用iOS MapKit。我獲得了路線方向的桌面視圖。然後我將它們保存到一個文本文件(Roads.txt)中。一旦在文本文件中,我想剝離除道路名稱以外的所有內容。這意味着我想剝離諸如「North」,「Turn」,「Right」等單詞。有什麼方法可以在Swift中執行此操作,還是必須將文件保存到數據庫並在其中處理更改?用Swift從文本文件中刪除單詞
我的代碼,它的工作原理,如下所示:
// Assign variables
let steps = directionsArray[indexPath.section].route.steps
let step = steps[indexPath.row]
let instructions = step.instructions
let distance = step.distance.kilometers()
// Save Directions to text file
let directions = ["\(instructions) - \(distance),"]
let filePath = getDocumentsDirectory().stringByAppendingPathComponent("Roads.txt")
let directionstext = directions.joinWithSeparator("\n")
do {
try directionstext.writeToFile(filePath, atomically: true, encoding: NSUTF8StringEncoding)
} catch {
print ("Error it did not write to file")
}
//read directions from text file
let file = "Roads.txt" // read from this file
if let dir = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.AllDomainsMask, true).first {
let path = NSURL(fileURLWithPath: dir).URLByAppendingPathComponent(file)
do {
let Direc = try NSString(contentsOfURL: path, encoding: NSUTF8StringEncoding)
print(Direc)
}
catch {print("failed to find file")}
}
您可以分享您的輸出文件的內容目前的樣子嗎?另外,你想要什麼作爲最終結果?你只需要一個只包含道路名稱的文件,或者你還需要所有方向的版本? – Westside
嗨克里斯,謝謝你的回覆!當前的文本文件如下所示繼續無限循環 - 0.00, 右轉進入N De Anza Blvd - 0.08, 右轉併合到I-280 S - 0.12, 從3A出口合併到CA-87 - 7.81, 右邊合併到Guadalupe Parkway S - 0.25, 左邊合併到CA-87 S - 0.85,我希望它看起來像無限循環 - 0.00, N De Anza Blvd - 0.08, I- 280 S - 0.12, CA-87 - 7.81, Guadalupe Parkway S - 0.25, CA-87 S - 0.85,親切的問候Jonathan –
所以你在尋找的是一個方法來拆分每個步驟的指令屬性隔離道路名稱。不幸的是,這並不容易,因爲對於需要刪除的內容沒有明確的規則。如果你試圖通過搜索「轉向」或「轉向」這樣的詞做到這一點,那麼它會被諸如「特納街」或「多倫多大道」之類的道路名稱絆住,並且存在諸如「將3A出口合併到......「意味着對於所有不同的出口可能有大量的潛在指示。有什麼辦法可以得到詳盡的可能指示清單嗎? – Westside