2016-10-10 2 views
1

JSON 데이터를 내 Realm DBSwift에 쓰는 방법에 대한 정보를 찾을 수 없습니다. 내가 서버에서 JSON을 여기에서Swift에서 JSON을 영역에 쓰는 방법

class News: Object { 
    dynamic var newsID: String = "" 
    dynamic var newsTitle: String = "" 
    dynamic var newsFullText: String = "" 
    dynamic var newsAutor: String = "" 
    dynamic var newsCommentCount: String = "" 
    dynamic var newsSeenCount: String = "" 
    dynamic var newsDate: String = "" 
    dynamic var newsCategory: String = "" 
} 

:

func parseJSONData(data: NSData) -> [News] { 

    do { 
     let temp: NSString = NSString(data: data, encoding: NSUTF8StringEncoding)! 
     let myNSData = temp.dataUsingEncoding(NSUTF8StringEncoding)! 

     let jsonResult = try NSJSONSerialization.JSONObjectWithData(myNSData, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary 
     let jsonNews = jsonResult["posts"] as! [AnyObject] 
     for jsonnewes in jsonNews { 
      let newsJson = News() 
      newsJson.newsTitle = jsonnewes["post_title"] as! String 
      newsJson.newsAutor = jsonnewes["author_name"] as! String 
      newsJson.newsFullText = jsonnewes["full_text"] as! String 
      newsJson.newsID = jsonnewes["id"] as! String 
      newsJson.newsCategory = jsonnewes["menu_category_name"] as! String 
      newsJson.newsDate = jsonnewes["create_date"] as! String 
      newsJson.newsSeenCount = jsonnewes["review"] as! String 
      newsJson.newsCommentCount = jsonnewes["comment_count"] as! String 
      newsItems.append(newsJson) 
     } 
    } catch { 
     print(error) 
    } 
    return newsItems 
} 

어떻게 쓸 내 데이터를 Realm DB에 클래스

나는이?

func insertOrUpdate(news: News) { 
    try! realm.write({ 
      realm.add(news) 
     }) 
} 

하지만 객체를 상속하지 않고 당신이 모델을 만드는 것이 좋습니다 :

+0

당신은 심지어 [문서]를 읽을나요 (https://realm.io/docs/swift/latest/)? realm db에 객체를 쓰는 것은 매우 쉽다. – Tj3n

+0

물론 가능하다. 나는 내가 시험해 볼 수 있다는 것을 안다! realm.write { json = 시도하자! JSONSerialization.jsonObject (데이터 : 옵션 : []) realm.create (City.self, 값 : json, 업데이트 : true) }하지만 도움이되지 않습니다. – Zhanserik

+0

배열에서 'newsJson'을 수집하십시오. 'newsObjects') 그런 다음'realm.add (newsObjects)'를 호출하여 모든 것을 Realm에 추가하십시오. – Michael

답변

5

class News { 
    var newsID: String = "" 
    var newsTitle: String = "" 
    var newsFullText: String = "" 
    var newsAutor: String = "" 
    var newsCommentCount: String = "" 
    var newsSeenCount: String = "" 
    var newsDate: String = "" 
    var newsCategory: String = "" 
} 



class NewsRealm: Object { 
    dynamic var newsID: String = "" 
    dynamic var newsTitle: String = "" 
    dynamic var newsFullText: String = "" 
    dynamic var newsAutor: String = "" 
    dynamic var newsCommentCount: String = "" 
    dynamic var newsSeenCount: String = "" 
    dynamic var newsDate: String = "" 
    dynamic var newsCategory: String = "" 
} 

다음 구문 분석 JSON 후에는 NewsRealm와 insertOrUpdate 및지도 데이터를 호출

func insertOrUpdate(news: News) { 
    let realm = try! Realm() 
    try! realm.write({ 
     let newsRealm = NewsRealm() 
     newsRealm.newsTitle = news.newsTitle 
     newsRealm.newsAutor = news.newsAutor 
     newsRealm.newsFullText = news.newsFullText 
     . 
     . 
     . 
     realm.add(newsRealm) 
     }) 
} 
업데이트 제출 용
+0

좋습니다! 그것은 일이다 !! 고맙습니다! – Zhanserik

+0

안녕하세요! 데이터베이스의 데이터를 업데이트하는 방법? – Zhanserik

1

class NewsRealm: Object { 
    dynamic var newsID: String = "" 
    dynamic var newsTitle: String = "" 
    dynamic var newsFullText: String = "" 
    dynamic var newsAutor: String = "" 
    dynamic var newsCommentCount: String = "" 
    dynamic var newsSeenCount: String = "" 
    dynamic var newsDate: String = "" 
    dynamic var newsCategory: String = "" 

     override static func primaryKey() -> String? { 
     return "newsID" 
     } 
} 

을 다음 업데이트 : 당신은 기본 키 newsRealm에 방법을 정의해야합니다

func insertOrUpdate(news: News) { 
    let realm = try! Realm() 
    try! realm.write({ 
     let newsRealm = NewsRealm() 
     newsRealm.newsTitle = news.newsTitle 
     newsRealm.newsAutor = news.newsAutor 
     newsRealm.newsFullText = news.newsFullText 
     . 
     . 
     . 
     realm.add(newsRealm, update: true)   }) 

} 

에 새가 제기 그래서 만약 개체가 데이터베이스에 추가하지만 업데이트는 데이터베이스 개체에있을 수 있습니다. 내 영어 죄송합니다

)

관련 문제