CoreDate 01

1.导航栏里面的按钮,左侧或者右侧的,点击之后,弹出一个页面,可以在storyBoard里面show出来,也可以在代码里面创建控制器对象,presentation出来

CoreDate 01_第1张图片
Snip20161026_7.png

2.[alert addAction:<#(nonnull UIAlertAction *)#>];
此处需要添加的是对象,因此需要创建出来一个UIAlertAction对象

 [alert addAction:[UIAlertAction actionWithTitle:@"保存" style:UIAlertActionStyleDestructive handler:^(UIAlertAction * _Nonnull action) {
    //获取上下文
    NSManagedObjectContext *moc = self.appDelegate.persistentContainer.viewContext;
    //创建实体对象
    Person *person = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:moc];
    //设置属性值
    person.name = alert.textFields[0].text;
    person.age = alert.textFields[1].text.intValue;
    NSLog(@"%@ %d",person.name,person.age);
    
    //保存到数据库
    [self.appDelegate saveContext];
 
}]];

3.建立数据模型(CoreDate)的步骤:
(1)建立实体
(2)添加属性
(3)使用菜单创建NSManageObject的子类

CoreDate 01_第2张图片
Snip20161026_9.png

4.UIAlertController弹窗
在view上面添加文本框,既可以直接拖控件,也可以直接使用方法

[alert addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) {
    textField.placeholder = @"请输入姓名";
}];

给文本框设置值,可以通过textField
获取值可以通过textFields属性

  person.name = alert.textFields[0].text;

5.CoreDate中,添加新的实体对象,使用insert方法
实体模型相当于我们常见的类,实体描述相当于创建出来的UI系那个

insertNewObjectForEntityForName:@"Person" inManagedObjectContext:moc]

6.查询数据
要查询数据需要使用查询结果控制器
//查询个人记录的请求
NSFetchRequest *request = [Person fetchRequest];

request.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES]];
NSManagedObjectContext *moc = self.appDelegate.persistentContainer.viewContext;
//实例化查询结果控制器
_fetchedResultsController = [[NSFetchedResultsController alloc]initWithFetchRequest:request managedObjectContext:moc sectionNameKeyPath:nil cacheName:nil];
//开始查询
[_fetchedResultsController performFetch:NULL];

_fetchedResultsController.delegate = self;

7.通过代理监听数据的变化有什么好处
其他地方数据的增删改只需要负责对数据的额操作,而不要关心界面的UI处理
- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller{
[self.tableView reloadData];
}
8.对象图


CoreDate 01_第3张图片
Snip20161026_13.png

非常方便做数据表结构的变化

你可能感兴趣的:(CoreDate 01)