Halo Guys,我是Swift編程新手,我遇到了一個問題,我使用Realm DB來存儲用戶通過身份驗證後的數據。從服務器應用程序附帶的結果已經被映射爲JSON字符串,它的工作,經過JSON轉換爲object /模式,我把它放到境界DB,Swift和對象映射器(Json)中的Realm DB
下面是代碼的:
print(response.text)
let requestResult:RequestResult = Mapper<RequestResult>().map(response.text)!
var publicLogin : PublicLogin = Mapper<PublicLogin>().map(requestResult.result)!
let t : String = Mapper<PublicLogin>().toJSONString(publicLogin)!
print("TTT===== "+t)
dispatch_sync(dispatch_queue_create("background", nil)){
let realm = try! Realm()
try! realm.write{
realm.add(publicLogin)
publicLogin = realm.objects(PublicLogin.self)[0]
let x : String = Mapper<PublicLogin>().toJSONString(publicLogin)!
print(" ########## \n : "+x)
let sideMenu = SSASideMenu(contentViewController: UINavigationController(rootViewController: HomeViewController()), leftMenuViewController: LeftMenuViewController(), rightMenuViewController: RightMenuViewController())
let color:UIColor = UIColor(netHex:0x000000)
sideMenu.view.backgroundColor = color
sideMenu.configure(SSASideMenu.MenuViewEffect(fade: true, scale: true, scaleBackground: false))
sideMenu.configure(SSASideMenu.ContentViewEffect(alpha: 1.0, scale: 0.7))
sideMenu.configure(SSASideMenu.ContentViewShadow(enabled: true, color: UIColor.blackColor(), opacity: 0.6, radius: 6.0))
self.presentViewController(sideMenu, animated: true, completion: nil)
self.loginButton.selected = false ;
progress.Close()
}
}
我是要確保,JSON數據firsttime一直有效,我把下面的控制檯/登錄詳細說明我的情況:
但之後,我投入的境界DB,並試圖找回,它似乎爲null/nil對象,下面是console/log
的{}字符串應該是一個JSON對象......這就是問題所在
任何人可以幫助我使用的境界DB或者如果您發現錯誤解釋的正確方法我的代碼是?謝謝。
1.您應該添加您試圖從數據庫讀取的方式。 2.您是否使用唯一標識符設置對象? 3.你正在後面的線程上進行UI操作。這不是很好的做法。 – MCMatan
1 - 是的,先生,我這樣做。我注意到它只是一個例子:realm.objects(PublicLogin.self)[0] 2 - 還沒有先生,我會在稍後添加的,我從文檔中讀取,它用於更新功能,所以我認爲只有當我需要時更新領域中的現有數據db 3 - 我做了同步,因爲只有當resut已經從服務器來到並放入領域數據庫時,UI纔會出現,如果不是,它應該不會改變頁面/ UI – Alfarabi
你如何試圖訪問該對象?你缺少代碼.. 3.你永遠不應該改變後面的線程的用戶界面。如果您正在等待異步任務完成,則仍然可以移回UI線程並對其進行更改。它會以非常奇怪的方式影響你,或者只是不工作。 – MCMatan