日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

IOS开发之coreData

發布時間:2023/12/31 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IOS开发之coreData 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>


注意在使用coreData的時候,注意創建工程的時候要勾選use core Data這一個選項,然后操作如下圖:添加實體和實體類,里面和操作數據庫的步驟是一樣的。

然后點擊新建,點擊如藍色部分的新建類:

//coreData是蘋果提供的數據本地化的一種,實質還是通過數據庫存儲數據

//但是操作數據的時候不需要sql語句

//核心文件和類

//1.模型文件:(后綴是.xcdatamodeld,相當于數據庫文件

//2.實體:相當于表

//3.實體類:表存儲的對象的類

//4.上下文:關聯模型文件和實際生成的數據庫文件;



//coreData的使用步驟

//1.創建一個模型文件;(創建工程點use coredata就創建了)

//2.創建實體,相當于創建表

//3.創建實體類

//4.生成上下文:(操作上下文就相當于操作數據庫)

#import "ViewController.h"

#import "AppDelegate.h"

#import "Student.h"

@interface ViewController ()



//上下文

@property (nonatomic,strong) NSManagedObjectContext *context;


@end


@implementation ViewController


- (void)viewDidLoad {

? ? [super viewDidLoad];

? ? //插入數據

? //? [self insertData];

?? ?

? ? //數據查詢

? ? //[self selectData];

?? ?

? ? //刪除數據

? ? //[self deleteData];

?? ?

? ? //更新數據

? ? [self updataData];

? ? NSLog(@"%@",NSHomeDirectory());

?? ?

?? ?

}

#pragma mark - 更新數據

- (void)updataData{

? ? //1.查詢到需要更新的數據

? ? NSFetchRequest *fetchrequest = [[NSFetchRequest alloc]

? ? ? ? ? ? ? ? ? ? initWithEntityName:@"Student"];

?? ?

? ? //創建查詢對象

? ? NSPredicate *pre = [NSPredicate predicateWithFormat:@"score<70"];

? ? //設置查詢條件

? ? fetchrequest.predicate = pre;

? ? //查詢

? ? NSArray *array = [self.context executeFetchRequest:fetchrequest error:nil];

?? ?


?? ?

? ? //2.更新屬性

? ? for (Student *stu in array) {

?? ? ? ?

? ? ? ? stu.score = @60;

? ? ? ?

? ? }

? ?

? ? //3.保存數據庫

? ? [self.context save:nil];

?? ?

}

#pragma mark - 刪除數據

- (void)deleteData{

?? ?

? ? //1.查詢要刪除的數據

? ? NSFetchRequest *fetchrequest = [[NSFetchRequest alloc]

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? initWithEntityName:@"Student"];

? ? //創建查詢對象

? ? NSPredicate *pre = [NSPredicate predicateWithFormat:@"name = '小明'"];

? ? //設置查詢條件

? ? fetchrequest.predicate = pre;

? ? //查詢

? ? NSArray *array = [self.context executeFetchRequest:fetchrequest error:nil];

? ?

? ? //2.刪除數據

? ? for (Student *stu in array) {

?? ? ? ?

? ? ? ? [self.context deleteObject:stu];

? ? }

?? ?

?? ?

? ? //3.保存數據庫

? ? [self.context save:nil];

?? ?

?? ?

}



#pragma mark - 數據查詢

- (void)selectData{

?? ?

? ? //1.創建一個查詢對象

? ? //參數:實體名:相當于表名

? ? NSFetchRequest *fetchrequest = [NSFetchRequest fetchRequestWithEntityName:@"Student"];

? ? //2.查詢數據

? ? //返回值:查詢結果數據

? ? NSArray *array = [self.context executeFetchRequest:fetchrequest error:nil];

?? ?

? ? for (Student *stu in array) {

? ? ? ? [stu show];

? ? }

?? ?

? ? //==========按條件查詢==================

? ? //1.創建條件對象

? ? //條件:成績大于80

? ? NSPredicate *pred = [NSPredicate predicateWithFormat:@"score > 80"];

?? ?

? ? NSPredicate *pred2 = [NSPredicate predicateWithFormat:@"score > %@",@90];

?? ?

? ? NSPredicate *pred3 = [NSPredicate predicateWithFormat:@"%K > %@",@"age",@15];

?? ?

? ? //2.設置查詢對象的條件

? ? fetchrequest.predicate = pred3;

?? ?

? ? //3.查詢數據

? ? NSArray *array2 = [self.context executeFetchRequest:fetchrequest error:nil];

? ? for (Student *stu in array2) {

? ? ? ? [stu show];

? ? }

?? ?

? ? //===============對查詢結果進行排序======================

? ? //1.創建排序對象

? ? //參數1:按哪個屬性進行排序

? ? //參數2:是否升序

? ? NSSortDescriptor *desc = [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:NO];

? ? NSSortDescriptor *desc1 = [NSSortDescriptor sortDescriptorWithKey:@"score" ascending:NO];

?? ?

? ? //2.設置查詢的排序

? ? fetchrequest.sortDescriptors = @[desc,desc1];

?? ?

? ? //3.查詢數據

?? NSArray *array3 = ? [self.context executeFetchRequest:fetchrequest error:nil];

? ? for (Student *stu in array3) {

? ? ? ? [stu show];

? ? }

?? ?

?? ?

?? ?

}



#pragma mark - 數據的插入

-(void)insertData{

?? ?

? ? //=============插入單條數據======================

? ? //1.通過實體創建一個學生對象

?? ?

? ? //參數1:實體名(表名)

? ? //參數2:上下文(數據庫)

? ? Student *student = [NSEntityDescription insertNewObjectForEntityForName:@"Student" inManagedObjectContext:self.context];

?? ?

? ? //2.設置學生對象的屬性

? ? student.name = @"小明";

? ? student.age = @20;

? ? student.score = @90;

?? ?

? ? //保存數據庫

? ? [self.context save:nil];

?? ?

?? ?

?? ?

? ? //========插入多條數據===========

?? ?

? ? for (int i =0 ; i<20; i++) {

? ? ? ? //1.創建對象

? ? ? ? Student *stu = [NSEntityDescription insertNewObjectForEntityForName:@"Student" inManagedObjectContext:self.context];

? ? ? ? //2.設置屬性

? ? ? ? stu.name = [NSString stringWithFormat:@"name%d",i];

? ? ? ? stu.age = [NSNumber numberWithInt:arc4random() % 10 +10];

? ? ? ? stu.score = [NSNumber numberWithFloat:arc4random() % 100];

?? ? ? ?

?? ? ? ?

? ? }

? ? //3.保存數據庫

? ? [self.context save:nil];

?? ?


}



#pragma? mark - 懶加載

- (NSManagedObjectContext *)context{

?? ?

? ? if (_context == nil) {

? ? ? ?

? ? ? ? //1.拿到當前應用程序的代理

? ? ? ? //拿到當前應用程序對象

? ? ? ? //生成上下文

? ? ? ? AppDelegate *delegate =? [UIApplication sharedApplication].delegate;

? ? ? ? _context = delegate.managedObjectContext;

?? ? ? ?

?? ? ? ?

?? ? ? ?

?? ? ? ?

? ? }

? ? return _context;

}



@end











轉載于:https://my.oschina.net/luhoney/blog/670508

總結

以上是生活随笔為你收集整理的IOS开发之coreData的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。