ios coredata 老代碼備用參考

來源:互聯網
上載者:User

標籤:

iPhone OS在2009年6月份推出3.0版本SDK,其中一個特性是引入了Mac SDK中的core data。是一種ORM(Object Relationships Mapping)解決方案,類似java的Hibernate。

有了這個,就不必像ios簡單sqlite使用那樣編寫繁瑣代碼了,減少工作量,也可以迴避使用c的文法,降低ios開發的技術門檻。總之,可降低開發成本,提高項目品質。

本文在很大程度上參考了《Core Data Tutorial for iOS》。

建立ios項目

為了方便,直接用xcode工具嚮導建立項目,這樣可以自動整合core data的支援。

不一定建立window-based項目,split view-based也可以,用於ipad項目,或者對於iphone的navigation-based項目亦可。

 

建立實體

比如java裡的執行個體需要編寫java類和對應的mapping檔案(也可能是註解)。在ios裡,需要兩步:

  • 圖形介面的設計工具,設計實體、實體屬性和實體的關係
  • 產生實體的類,也就是對應的.h和.m檔案

建立的項目比如叫aaa,那麼找到aaa.xcdatamodel:

 

雙擊它,可調出模型編輯器。建立一個Person實體。

點擊的加號建立一個新的實體(entity),然後在entity的文字框中填寫實體名稱。斷行符號就可以看到下面類似uml類圖的圖形名稱變為Person。

然後建立屬性:

點擊屬性部分的加號,選擇Add Attribute,增加一個id,數位:

然後,設定為自增列:

再設定個name屬性:

如果有多個實體,繼續建立,或者建立它們之間的關係。

然後,產生實體類,供編寫程式時調用。

建立新檔案,注意要在實體編輯器介面,可以選中Person實體,這樣產生的檔案名稱就是Person:

選擇 managed object class:

然後:

然後選中需要的實體,finish:

 

 

 

 

 

 

在項目中產生了實體類:

在代碼中使用實體

首先,需要在使用Person執行個體類的代碼標頭檔中加入:

#import <UIKit/UIKit.h> 
#import <CoreData/CoreData.h> 
#import "Person.h"

使用core data的簡單代碼,建立一個Person實體執行個體,儲存它,然後遍曆資料,相當於:select * from persons:

NSLog(@">>start app "); 
Person *person=(Person *)[NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:[self managedObjectContext]]; 
[email protected]"張三";

NSError *error;

if (![[self managedObjectContext] save:&error]) { 
    NSLog(@"error!"); 
}else { 
    NSLog(@"save person ok."); 
}

NSFetchRequest *request=[[NSFetchRequest alloc] init]; 
NSEntityDescription *entity=[NSEntityDescription entityForName:@"Person" inManagedObjectContext:[self managedObjectContext]]; 
[request setEntity:entity];

 

ios coredata 老代碼備用參考

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.