сохранить текущее местоположение в plist, когда пользователь вводит радиус геозон - PullRequest
0 голосов
/ 06 ноября 2018

Я работаю над приложением геозоны. Мне нужно сохранить текущее местоположение пользователя в список, когда пользователь вводит радиус геозоны, который я извлек их из файла базы данных. Как это сделать? Я новичок в этом. Пожалуйста, помогите .. я извлек из файла БД, как это ..

func readvalues(){

let path = Bundle.main.path(forResource: "NewFile", ofType: "db")


let database = FMDatabase(path: path)
if !database.open() {
  print("Unable to open database")
  return
}

if let rs =   database.executeQuery("SELECT * FROM myowntable", withArgumentsIn: []) {

  while rs.next() {

    print("%@", rs);
    geotifications = []
    let longitude = rs.string(forColumn: "longitude") as! String
    let latitude = rs.string(forColumn: "latitude") as! String
    let note = rs.string(forColumn: "note") as! String
    let radiusstring = rs.string(forColumn: "radius") as! String
    let radius =  (radiusstring as NSString).doubleValue
    let identifier = rs.string(forColumn: "identifier") as! String
    let event = Int(rs.string(forColumn: "eventType")!)!
    let eventType: EventType = (event == 0) ? .onEntry : .onExit
    let location:CLLocationCoordinate2D = CLLocationCoordinate2D(latitude: (latitude as NSString).doubleValue, longitude: (longitude as NSString).doubleValue)


  self.addGeotificationViewController(didAddCoordinate: location, radius: radius, identifier: identifier, note: note, eventType: eventType)


  }

} else {
  print("executeQuery failed: \(database.lastErrorMessage())")
}

database.close()

  }

1 Ответ

0 голосов
/ 06 ноября 2018

Вы не можете изменить plist-файл приложения, поэтому вам нужно создать собственный plist-файл

let fileManager = FileManager.default

let documentDirectory = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
let path = documentDirectory.appending("/geo.plist")

if(!fileManager.fileExists(atPath: path)){
    print(path)

    let data : [String: String] = [
        "geoPointX": "20",
        "geoPointY": "30"

    ]

    let someData = NSDictionary(dictionary: data)
    let isWritten = someData.write(toFile: path, atomically: true)
    print("is the file created: \(isWritten)")



} else {
    print("file exists")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...