在我的swift 2應用程序中,用戶可以將數據保存在覈心數據中。未來,我想知道數據將保存在覈心數據和MYSQL數據庫中。swift同步數據的核心數據mysql數據庫
什麼是同步核心數據和MySQL之間數據的最佳方式
我的想法是,這對每個應用程序啓動進程將啓動:
- 做一個HTTP POST請求的PHP文件,其中選擇了MySQL數據庫的所有數據,並給出結果返回給應用程序
- 檢查其核心數據存在數據=>無關,以及哪些數據是新的=>保存核心數據的新數據
這是做到這一點的最好和最快捷的方法嗎?
在我的swift 2應用程序中,用戶可以將數據保存在覈心數據中。未來,我想知道數據將保存在覈心數據和MYSQL數據庫中。swift同步數據的核心數據mysql數據庫
什麼是同步核心數據和MySQL之間數據的最佳方式
我的想法是,這對每個應用程序啓動進程將啓動:
這是做到這一點的最好和最快捷的方法嗎?
有沒有最快的方法,但我絕對可以建議一些適合我的東西。最好還是不 - 它取決於你自己決定。
此外,您的問題是非常通用的 - 因爲它包含了移動應用程序的整個後端基礎架構。我會盡量具體,我可以 -
1)做一個HTTP POST請求的PHP文件,它可以選擇MySQL數據庫的所有數據,並給其結果返回給應用程序 -
一旦您收到的結果,你可以分析它的核心數據如下面的例子 -
func writeDataToSqliteStore() throws {
// Configure the Network Call here with NSURL & NSData returning an array that you can write to the Core Data SQLITE backend.
do {
jsonResponse = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions()) as? NSArray
} catch {
print(error)
}
let localEntity = self.insertNewEntity("EntityName") as? CoreDataEntityClass
for singleObject in jsonResponse {
localEntity.name = singleObject.valueForKey("name")
localEntity.address = singleObject.valueForKey("address")
}
}
2)檢查該數據在覈心數據存在=>無關,以及哪些數據是新的=>保存新數據在覈心數據 -
你可以做一個時間戳的好頭部呼叫,並檢查我f數據已更新。 如果數據已更新 - 它可能會更新一些個人核心數據屬性。一直以來,我一直在刪除設備上的SQLITE後端,並再次運行數據寫入方法。 您可以使用下面的例子 -
func removeSQLITEFiles() {
let fileManager = NSFileManager.defaultManager()
let URL1 = self.applicationDocumentsDirectory.URLByAppendingPathComponent("File.sqlite")
let URL2 = self.applicationDocumentsDirectory.URLByAppendingPathComponent("File.sqlite-wal")
let URL3 = self.applicationDocumentsDirectory.URLByAppendingPathComponent("File.sqlite-shm")
if fileManager.fileExistsAtPath(URL1.path!) {
do {
try fileManager.removeItemAtURL(URL1)
}
catch {error}
}
if fileManager.fileExistsAtPath(URL2.path!) {
do {
try fileManager.removeItemAtURL(URL2)
}
catch {error}
}
if fileManager.fileExistsAtPath(URL3.path!) {
do {
try fileManager.removeItemAtURL(URL3)
}
catch {error}
}
}
之後,你可以再次運行writeDataToSqlieStore()
方法。
希望有所幫助。
沒有想法嗎? OO – Stack108