iOS CoreData

iOS CoreData在以前使用的时候,Create NSManagedObject Subclass...生成两个文件,如今的iOS版本生成的是4个文件,都是创建NSManagedObject。


这样在开始编译时可能会遇到错误,我们可以删掉如下图所指的地方就可以了。





CoreData简单实现增删改查:

//
//  ViewController.m
//  coredata20170915
//
//  Created by hkshen on 2017/9/15.
//  Copyright © 2017年 hkshen. All rights reserved.
//

#import "ViewController.h"
#import "Person+CoreDataClass.h"
#import "ClientManage.h"
#import "Card+CoreDataClass.h"
#import "AppDelegate.h"

@interface ViewController ()

- (IBAction)doCoreDataCheck:(id)sender;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    
    //AppDelegate *appDelegate = [UIApplication sharedApplication].delegate;
    
    // 增
    Person *person = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:[ClientManage singletonInstance].managedObjectContext];
    //person.age = [NSNumber numberWithInteger:40];
    [person setValue:[NSNumber numberWithInt:27] forKey:@"age"];
    person.name = @"hkshen";
    
    Card *card = [NSEntityDescription insertNewObjectForEntityForName:@"Card" inManagedObjectContext:[ClientManage singletonInstance].managedObjectContext];
    card.no = @"123456";
    
    person.card = card;
    card.person = person;
    
    // 保存
    NSError *error = nil;
    if ([[ClientManage singletonInstance].managedObjectContext hasChanges] && ![[ClientManage singletonInstance].managedObjectContext save:&error]) {
        NSLog(@"Unresolved error %@, %@", error, error.userInfo);
        abort();
    }
}


- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

#pragma mark - Button functions

// 查
- (IBAction)doCoreDataCheck:(id)sender {
    
    // 初始化查询请求
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:[ClientManage singletonInstance].managedObjectContext];
    
    // 排序方式
    NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:NO];
    // 条件过滤
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name == %@", @"hkshen"];
    
    fetchRequest.entity = entityDescription;
    fetchRequest.sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
    fetchRequest.predicate = predicate;
    
    NSArray *objectArray = [[ClientManage singletonInstance].managedObjectContext executeFetchRequest:fetchRequest error:nil];
    
    if (objectArray) {
        NSLog(@"objectArray:%@", objectArray);
        
        // 改
        Person *checkedPerson = [objectArray objectAtIndex:0];
        checkedPerson.name = @"wanglanman";
        NSLog(@"CheckedPerson:%@", checkedPerson);
        
        // 删
        //[[ClientManage singletonInstance].managedObjectContext deleteObject:checkedPerson];
    }
}

@end

代码:github

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值