你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS的CoreData用法

iOS的CoreData用法

編輯:IOS開發綜合


CoreData以前沒用過,最近試用了一下,感覺省了好多的代碼,很方便。當然,也只是會使用。

首先來創建一個工程 \
系統默認會給你增加一些東西,至於這些東西具體干嘛使的,自己去谷歌找找,說了,我只會使用。 在工程目錄下有一個.xcdatamodeld的文件,這就是CZ喎?/kf/ware/vc/" target="_blank" class="keylink">vcmVEYXRhtcTW2LXjwcuho7/J0tTU2tXiwO/D5sztvNPSu9CpTW9kZWxkus3F5NbDTW9kZWxktcTK9NDUoaM8YnI+CgrU2nhjZGF0YW1vZGVsZLXE1/PPwr3HQWRkIEVudGl0ec/gtbHT2rS0vajSu7j2yv2+3cSj0M3Sss/gtbHT2tTayv2+3b/itLS9qMHL0rvVxbHtoaM8aW1nIHNyYz0="/uploadfile/Collfiles/20140306/2014030614011142.jpg" alt="\">
現在我們創建一個名Dog的Modeld。同時,這個名字的首字母要大寫。 接下來我們來配置這個Dog的一些屬性。點擊+號添加屬性,Type可以選擇屬性的類型。 \
然後在Editor裡點擊CreateNSManagedObject SubClass...選擇Dog,然後Create就會多出一個Dog類。
\當然,我們完沒有必要在意這些東西。
現在就是使用這個東西了,好吧,我承認這一塊不太會描述,因為我的數據庫學的不太好。 在創建工程的時候,他會自動在AppDelegate裡描述一個屬性。 \
我們就是使用NSManagedObjectContext來對文件的增刪改查的操作。 首先,我們來插入一條數據。別忘了導入Dog的頭文件,雖然這是常識。
創建一個Dog對象。(@(1) == [NSNumbernumberWithInt:1];)
 Dog *dog = [NSEntityDescription insertNewObjectForEntityForName:@"Dog" inManagedObjectContext:self.managedObjectContext];
    
    [dog setName:@"花花"];
    [dog setAge:@(1)];
    [dog setSex:@(0)];
保存
    NSError *error = nil;
    BOOL isSave =   [self.managedObjectContext save:&error];
    if (!isSave) {
        NSLog(@"error:%@,%@",error,[error userInfo]);
    }
    else{
        NSLog(@"保存成功");
    }

然後就是查詢這個表的數據,描述一個可變數組來保存他們。
@property (strong, nonatomic) NSMutableArray *dataArray;

  //創建取回數據請求
    NSFetchRequest *request = [[NSFetchRequest alloc] init];
    //設置要檢索哪種類型的實體對象
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Dog"inManagedObjectContext:self.managedObjectContext];
    //設置請求實體
    [request setEntity:entity];
    //指定對結果的排序方式
    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"name"ascending:NO];
    NSArray *sortDescriptions = [[NSArray alloc]initWithObjects:sortDescriptor, nil];
    [request setSortDescriptors:sortDescriptions];
    NSError *error = nil;
    //執行獲取數據請求,返回數組
    NSMutableArray *mutableFetchResult = [[self.managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
    if (mutableFetchResult == nil) {
        NSLog(@"Error: %@,%@",error,[error userInfo]);
    }
    self.dataArray = mutableFetchResult;
    for (Dog *dog in self.dataArray) {
        NSLog(@"age:%@---sex:%@---name:%@",dog.age,dog.sex,dog.name);
    }

現在我們給一個對象改個名字。
    [dog setName:@"哮天犬"];
    NSError *error;
    BOOL isUpdateSuccess = [self.managedObjectContext save:&error];
    if (!isUpdateSuccess) {
        NSLog(@"error:%@,%@",error,[error userInfo]);
    }
    else{
        NSLog(@"更新成功!");
    }

最後再刪除這條數據
    [self.managedObjectContext deleteObject:dog];
    [self.dataArray removeObject:dog];
    NSError *error;
    if (![self.managedObjectContext save:&error]) {
        NSLog(@"Error:%@,%@",error,[error userInfo]);
    }
    else{
        NSLog(@"刪除成功!");
    }

現在我就會這麼多了,希望對你有所幫助。 還有,系統默認是把數據保存到Documents下面。你可以在AppDelegate的這個方法裡修改。當然,這不重要。 \

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved