2017-04-23 74 views
0

大家下午好,如何從其他幾個類創建一個Realm類?

我目前正在做一個名爲「Bookmark」的任務。簡短描述是每當我點擊書籤按鈕時,應用程序將保存文章,然後將其顯示在BookmarkVC中。

我有3種類型的對象叫做「News」,「Documents」和「ITSectionResult」,我的想法是創建一個名爲「BookmarkItem」的對象,它包含3個以上對象的元素和一個名爲bookmarkCategory的屬性,對象,以便我可以使用它在BookmarkVC中顯示。我只想在一個領域對象上工作,所以任何人都可以幫助我將這些傢伙分組在一起?在這裏我想下面附上我的代碼草案:

對於新聞類:

class NewsArticle:Object { 
dynamic var title: String? 
dynamic var body:String? 
dynamic var category:String? 
dynamic var createTime:String? 
dynamic var image:String? 
dynamic var id:String? 

convenience init (title:String, body:String, category:String, 
image:String, id:String, createTime:String) { 
    self.init() 
    self.title = title 
    self.body = body 
    self.category = category 
    self.image = image 
    self.id = id 
    self.createTime = createTime 
} 

文檔類:

class Documents { 
var id: String? 
var title:String? 
var createTime:CLong? 
var url:String? 

init (title:String, id:String, createTime:CLong?, url:String) { 
    self.title = title 
    self.id = id 
    self.createTime = createTime 
    self.url = url 
} 

ITSectionResult類:

class SectionSearchResult { 
var title:String? 
var image:String? 
var id:String? 
var byCategory:String? 

init (title:String, image:String, id:String, byCategory:String) { 
    self.title = title 
    self.image = image 
    self.id = id 
    self.byCategory = byCategory 
} 

最後起草BookmarkItem等級:

class BookmarkItem:Object { 

//Category 
dynamic var bookmarkCategory:BookMarkItemCategory? 

dynamic var title: NewsArticle? 
dynamic var body:NewsArticle? 
dynamic var category:NewsArticle? 
dynamic var createTime:NewsArticle? 
dynamic var image:NewsArticle? 
dynamic var id:NewsArticle? 

dynamic var link:String? 
dynamic var url:String? 

} 

class BookMarkItemCategory:Object { 
dynamic var name = "" 
} 

這裏我要提醒一下,BookmarkItem類使用3個主要屬性來顯示在BookmarkVC中,「image」用於過濾器類別類型(例如:用於Documents對象的書籍圖像,用於News對象的報紙圖標),「title」在WebView中顯示標題和網址。非常感謝你,祝你們週末愉快。

+0

通過沒有他們在多個類。 – EpicPandaForce

回答

1

正如上面在EpicPandaForce的評論中提到的,這可以通過沒有每個類型的類來實現,而是使用統一的模型。

import RealmSwift 

final class UnifiedModel: Object { 
    dynamic var title: String = "" 
    dynamic var id: String = "" 
    dynamic var createTime: String = "" 
    dynamic var category: String = "" 
    dynamic var body: String? 
    dynamic var image: String? 

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

用我上面顯示的模型,每個實例都需要一個標題,ID,創建時間和類別,同時身體和圖像可以留給爲零。如果您有任何其他問題,請隨時跟進。

免責聲明:我爲Realm工作。