swift語言IOS8開發戰記23 Core Data4

來源:互聯網
上載者:User

標籤:ios8   swift   coredata   objected model   資料庫   

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

let modelURL = NSBundle.mainBundle().URLForResource("tableView", withExtension: "momd")!

    還有一句是

et url = self.applicationDocumentsDirectory.URLByAppendingPathComponent("tableView.sqlite")

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

import CoreData

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



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

     

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

import Foundationimport CoreDataclass Rest:NSManagedObject {        @NSManaged var name:String!    @NSManaged var type:String!    @NSManaged var location:String!    @NSManaged var image:NSData!    @NSManaged var isVisit:NSNumber!    }
        關鍵字@NSManaged的作用是與實體中對應的屬性通訊,Binary Data對應的類型是NSData,Core Data沒有布爾屬性,只能用0 和 1來區分。當你把類做了修改之後,那麼建立類和實體之間的映射吧。進行如下操作,輸入類名:

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

cgImageView?.image = UIImage(named: newRest.image)

  修改如下:

cgImageView?.image = UIImage(data: newRest.image)

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

let here = rest!.isVisit ? "Yes,I'm here" : "No"

  修改為:

            let here = rest!.isVisit.boolValue ? "Yes" : "No"

我們需要擷取它的布爾值

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



swift語言IOS8開發戰記23 Core Data4

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.