Halo Guys는 사용자가 인증 된 후 Realteb DB를 사용하여 문제가 발생했습니다. JSON 개체/모델로 변환 후 서버 응용 프로그램에서 나온 결과를 JSON 문자열 작업을 할 매핑하고있다, 나는 아래 Swift 및 Object Mapper (Json)의 Realm DB
이며, 영역 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()
}
}
그것을
하지만 난이 영역 DB에 투입 한 후 다시 얻을려고 :
내가는 JSON 데이터 firsttime 내가 콘솔이/내 사건을 자세히 아래 로그 배치, 유효했다 확인했다 null/nil 오브젝트 인 것 같습니다. 아래 콘솔/로그입니다.
{} 문자열을 JSON 개체를해야합니다 ...이 문제입니다
사람은 실수에서 나는 경우 영역 DB를 사용하거나 올바른 방법을 설명하는 데 도움이 수 제 코드가요? 감사.
1. 당신은 DB에서 읽으려고하는 방법을 추가해야합니다. 2. 개체를 고유 한 식별자로 설정하고 있습니까? 3. 백 스레드에서 UI 작업을하고 있습니다. 이것은 좋은 습관이 아닙니다. – MCMatan
1 - 네, 저렇게 했어요. realm.objects (PublicLogin.self) [0] 2 - 아직 선생님, 나중에 추가 할 것입니다. 설명서에서 읽으므로 업데이트 기능을 사용하므로 필요한 경우에만 필요하다고 생각합니다. realm db에있는 기존 데이터를 업데이트합니다. resut가 서버에서 왔고 realm db에 넣은 경우에만 UI가 나타나야하기 때문에 동기가 발생했습니다. 그렇지 않으면 페이지/UI를 변경하지 않아야합니다. – Alfarabi
2. 어떻게 그 객체에 접근하려고합니까? 당신은 실종 코드입니다 .. 3. 다시 스레드에서 UI를 변경해서는 안됩니다. 비동기 작업이 끝나기를 기다리는 중이라면 여전히 UI 스레드로 돌아가서 변경할 수 있습니다. 아주 이상한 방식으로 효과를 나타내거나 일하지 않을 것입니다. – MCMatan