溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

IOS 核心數據(Core Data)框架

發布時間:2020-07-30 10:58:37 來源:網絡 閱讀:337 作者:RoderickKennedy 欄目:移動開發

1、NSManagedObjectModel:管理的對象模型,相當于實體,不過它包含了實體間的關系           

2、NSManagedObjectContext:管理的對象上下文,操作實際內容,作用:插入數據  查詢  更新  刪除

3、NSPersistentStoreCoordinator:持久化存儲助理,相當于數據庫的連接器      

4、NSFetchRequest:獲取數據的請求,相當于查詢語句   

5、NSPredicate:相當于查詢條件

6、NSEntityDescription:實體結構

7、后綴名為.xcdatamodel的包,里面的.xcdatamodel文件,用數據模型編輯器編輯,編譯后為.MOMD或.MOM文件;

操作步驟:

一、建立模型對象


#import <UIKit/UIKit.h>  

#import <CoreData/CoreData.h>  

@class ViewController;  

  

@interface AppDelegate : UIResponder <UIApplicationDelegate>  

  

@property (strong, nonatomic) UIWindow *window;  

  

@property (strong, nonatomic) ViewController *viewController;  

  

@property(strong,nonatomic,readonly)NSManagedObjectModel* managedObjectModel;  

  

@property(strong,nonatomic,readonly)NSManagedObjectContext* managedObjectContext;  

  

@property(strong,nonatomic,readonly)NSPersistentStoreCoordinator* persistentStoreCoordinator;  


@end


//托管對象  

-(NSManagedObjectModel *)managedObjectModel  

{  

    if (_managedObjectModel!=nil) {  

        return _managedObjectModel;  

    }  

//    NSURL* modelURL=[[NSBundle mainBundle] URLForResource:@"CoreData" withExtension:@"momd"];  

//    _managedObjectModel=[[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];  

    _managedObjectModel=[[NSManagedObjectModel mergedModelFromBundles:nil] retain];  

    return _managedObjectModel;  

 

//持久化存儲協調器  

-(NSPersistentStoreCoordinator *)persistentStoreCoordinator  

{  

    if (_persistentStoreCoordinator!=nil) {  

        return _persistentStoreCoordinator;  

    }  

//    NSURL* storeURL=[[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"CoreaData.CDBStore"];  

//    NSFileManager* fileManager=[NSFileManager defaultManager];  

//    if(![fileManager fileExistsAtPath:[storeURL path]])  

//    {  

//        NSURL* defaultStoreURL=[[NSBundle mainBundle] URLForResource:@"CoreData" withExtension:@"CDBStore"];  

//        if (defaultStoreURL) {  

//            [fileManager copyItemAtURL:defaultStoreURL toURL:storeURL error:NULL];  

//        }  

//    }  

    NSString* docs=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject];  

    NSURL* storeURL=[NSURL fileURLWithPath:[docs stringByAppendingPathComponent:@"CoreData.sqlite"]];  

    NSLog(@"path is %@",storeURL);  

    NSError* error=nil;  

    _persistentStoreCoordinator=[[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];  

    if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) {  

        NSLog(@"Error: %@,%@",error,[error userInfo]);  

    }  

    return _persistentStoreCoordinator;  

}


//托管對象上下文  

-(NSManagedObjectContext *)managedObjectContext  

{  

    if (_managedObjectContext!=nil) {  

        return _managedObjectContext;  

    }        

    NSPersistentStoreCoordinator* coordinator=[self persistentStoreCoordinator];  

    if (coordinator!=nil) {  

        _managedObjectContext=[[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];            

        [_managedObjectContext setPersistentStoreCoordinator:coordinator];  

    }  

    return _managedObjectContext;  

}


-(NSURL *)applicationDocumentsDirectory  

{  

    return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];  


@end

       

[fetchedResultsController objectAtIndexPath]:返回指定位置的數據.

[fetchedResultsController sections]:獲取section數據,返回的是NSFetchedResultsSectionInfo數據


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女