天天看點

swift語言IOS8開發戰記23 Core Data4

    這後面的部分痘子的視訊已經不講了,我自己看着英文書試着給大家講的,書名叫《Beginning IOS8 Programming with Swift》,感興趣的同學自己搜一下哈。上一話中我們講解了coredadta的用法,那麼如何把coredata用到我們的工程中麼,可以把上一話中的代碼粘貼到我們工程的AppDelegate中,基本這套代碼是通用的,注意有兩句要修改一下,一句是:

    還有一句是

   我的工程名是tableView(原諒我LOW了一點),是以做了以上修改,其他不變,都是從我們建立的那個coredata工程中複制過來的,代碼複制完後記得加上:

   這個是coredata的頭檔案,現在關于使用coredata的所有準備工作都做好了,我們開始建立我們需要的模型吧。我們之前已經介紹過了,如圖:

swift語言IOS8開發戰記23 Core Data4

    在生成的

swift語言IOS8開發戰記23 Core Data4

中,建立一個Rest實體跟我們工程中的Rest類對應起來,如圖,直接點選+增加就好了。

swift語言IOS8開發戰記23 Core Data4

      大家可能會奇怪為什麼image的類型是Binary Data,其實是因為按照之前的做法我們的圖檔都放在APP中,是以我們使用圖檔的時候在UIImage這個類中直接用圖檔的名字就能找到,如果使用者從相機中導入了新的照片的話,我們不能再用這個辦法,是以我們需要把圖檔存到資料庫中,而使用Binary Data就是這個目的。接着我們需要把我們的Rest類變成一個被coredata管理的類,點開Rest類,作如下修改:

        關鍵字@NSManaged的作用是與實體中對應的屬性通信,Binary Data對應的類型是NSData,Core Data沒有布爾屬性,隻能用0 和 1來區分。當你把類做了修改之後,那麼建立類和實體之間的映射吧。進行如下操作,輸入類名:

swift語言IOS8開發戰記23 Core Data4

        建立好之後因為我們之前寫的代碼有些地方并不适用于coredata,是以編譯器會報錯,現在來一一解決。首先你現在不能再用檔案名來加載圖檔。圖檔現在時data對象,之前的代碼如下:

  修改如下:

      第二個錯誤是isVisit屬性,這個屬性不再是布爾類型了,之前的代碼:

  修改為:

我們需要擷取它的布爾值

    第三個錯誤是我們現在不能使用之前的DataArray了,我們把它清空。現在我們的程式中已經沒有資料了,需要我們自己把資料添加到資料庫中。