CoreData
来源:互联网 发布:java与php的优缺点 编辑:程序博客网 时间:2024/05/29 17:34
//加载托管对象模型(coreData数据模型文件。)
NSString *momdPath = [[NSBundlemainBundle]pathForResource:@"Person"ofType:@"momd"];
NSManagedObjectModel *mom = [[NSManagedObjectModelalloc]initWithContentsOfURL:[NSURLfileURLWithPath:momdPath]];
//创建持久化存储协调器,处理数据的读写
NSPersistentStoreCoordinator *storeCoordinator = [[NSPersistentStoreCoordinatoralloc]initWithManagedObjectModel:mom];
//指定sqlite数据库文件的存储路径(coreData使用的数据库文件后缀一般写sqlite)
NSString *dbPath = [NSHomeDirectory()stringByAppendingString:@"/Documents/test.sqlite"];
//将coreData文件映射到数据库,并判断操作状态
NSError *createError = nil;
NSPersistentStore *store = [storeCoordinatoraddPersistentStoreWithType:NSSQLiteStoreTypeconfiguration:nilURL:[NSURLfileURLWithPath:dbPath] options:nilerror:&createError];
if (!store) {//出错,打印错误信息localizedDescription
NSLog(@"add error: %@", createError.description);
}
//创建操作数据的对象()
_managedObjectContext = [[NSManagedObjectContextalloc]init];
//关联持久化存储协调器
_managedObjectContext.persistentStoreCoordinator = storeCoordinator;
/*增*/
//在数据库中插入一个实体(模型)
Person *person = [NSEntityDescriptioninsertNewObjectForEntityForName:@"Person"inManagedObjectContext:_managedObjectContext];
//对实体的属性赋值
person.name = _textName.text;
person.age = [NSNumbernumberWithInteger:_textAge.text.integerValue];
//把插入的实体保存到数据库中
NSError *insertError = nil;
if (![_managedObjectContextsave:&insertError]) {
NSLog(@"insert error: %@", insertError.description);
} else {//插入成功
[_persons addObject:person];
[_tableVreloadData];
}
//删除
if (_persons.count >0) {//确保有数据才删除
Person *person =_persons[_currentRow];
//从数据库中删除并保存
[_managedObjectContextdeleteObject:person];
NSError *saveError = nil;
if (![_managedObjectContextsave:&saveError]) {
NSLog(@"delete save error: %@", saveError.description);
} else {
//从本地数组中删除
[_personsremoveObject:person];
[_tableVreloadData];
}
}
//修改
Person *person = _persons[_currentRow];
//先修改对象的属性
person.name = _textName.text;
person.age = [NSNumbernumberWithInteger: _textAge.text.integerValue];
//再存入数据库
NSError *updateError = nil;
if (![_managedObjectContextsave:&updateError]) {//保存失败
NSLog(@"update save error: %@", updateError.description);
} else {//保存成功
[_tableVreloadData];
}
//查
NSFetchRequest *fetchRequest = [NSFetchRequestfetchRequestWithEntityName:@"Person"];
//定义查询条件的谓词(加*号的意思是以zh开头)
NSPredicate *predicate = [NSPredicatepredicateWithFormat:@"name like %@",@"zh*"];
//设置fetchRequest的谓词//如果不设查询条件会查询所有
[fetchRequest setPredicate:predicate];
//执行查询
NSArray *fetchResult = [_managedObjectContextexecuteFetchRequest:fetchRequest error:nil];
[_persons setArray:fetchResult];
[_tableVreloadData];
苹果图标规范
https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/IconMatrix.html#//apple_ref/doc/uid/TP40006556-CH27-SW1
30分钟精通正则表达式
http://deerchao.net/tutorials/regex/regex.htm
UI特效
http://code4app.com/
- CoreData
- CoreData
- CoreData
- CoreData
- CoreData
- CoreData
- CoreData
- CoreData
- CoreData
- CoreData
- COREDATA
- CoreData
- CoreData
- coreData
- CoreData
- Coredata
- coredata
- CoreData
- java spring 记录用户增删改操作日志
- android开源项目 Google code
- android 代码规范
- mongodb的安装、创建数据库、设置用户(Window 7)
- 黑马程序员——正则表达式
- CoreData
- Android Studio美化之优雅的logcat
- 杭电acm2107
- servlet 生成验证图片
- Android背后的设计思想——功能共享机制
- C51中 Putchar、 _getkey(void)的替换
- Android SimpleAdapter 的详解和使用
- ALV 导出报表数据
- Nginx架构