MagicalRecord 增查改刪 基本用法
阿新 • • 發佈:2018-12-30
#pragma mark 刪除資料 - (void)deleteData { // delete資料庫中所有人 [Person MR_truncateAll]; [[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait]; // 根據條件delete特定的某個人 NSArray *personsdelete = [Person MR_findByAttribute:@"name" withValue:@"kun" andOrderBy:nil ascending:YES]; NSLog(@"%lu",(unsigned long)[personsdelete count]); // NSPredicate NSPredicate *peopleFilter = [NSPredicate predicateWithFormat:@"name CONTAINS %@",@"gao"]; NSArray *people = [Person MR_findAllWithPredicate:peopleFilter]; for (Person *person in people) { [person MR_deleteEntity]; } [[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait]; } #pragma mark 查詢資料 - (void)allData { NSArray *persons = [Person MR_findAll]; NSLog(@"%lu",(unsigned long)[persons count]); for (Person *persontemp in persons) { NSLog(@"name:%@----age:%@",persontemp.name,persontemp.age); } //查詢所有的Person並按照 name排序。 NSArray *personsSorted = [Person MR_findAllSortedBy:@"name" ascending:YES]; //查詢所有age屬性為3的Person記錄。 NSArray *personsAgeEuqals3 = [Person MR_findByAttribute:@"age" withValue:[NSNumber numberWithInt:3]]; //查詢資料庫中的第一條記錄 Person *person = [Person MR_findFirst]; } #pragma mark 改 - (void)alert { NSArray *wellperson = [Person MR_findByAttribute:@"name" withValue:@"gao" andOrderBy:@"age" ascending:YES]; for (Person*persontemp in wellperson) { persontemp.name = @"kun"; } [[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait]; } #pragma mark 增加資料 - (void)addData { for (int i = 0; i < 10; i ++) { Person *myPerson = [Person MR_createEntity]; myPerson.name = [NSString stringWithFormat:@"gao%d",i]; myPerson.age = [NSNumber numberWithInteger:i]; [[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait]; } }
在AppDelegate加上這一句
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[MagicalRecord setupCoreDataStackWithStoreNamed:@"data.sqlite"];
// Override point for customization after application launch.
return YES;
}