设为首页 加入收藏

TOP

Core Data with Mantle(二)
2015-07-24 06:11:32 来源: 作者: 【 】 浏览:26
Tags:Core Data with Mantle
在 nib 中可视化地操作数据。

.h文件

[objc] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  1. #import
  2. @interface Persistence : NSObject
  3. //数据模型对象
  4. @property(strong,nonatomic) NSManagedObjectModel *managedObjectModel;
  5. //上下文对象
  6. @property(strong,nonatomic) NSManagedObjectContext *managedObjectContext;
  7. //持久性存储区
  8. @property(strong,nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;
  9. //确定sqlite文件存储路径
  10. -(NSURL *)storeURL;
  11. //初始化Core Data使用的数据库
  12. -(NSPersistentStoreCoordinator *)persistentStoreCoordinator;
  13. //managedObjectModel的初始化赋值函数
  14. -(NSManagedObjectModel *)managedObjectModel;
  15. //managedObjectContext的初始化赋值函数
  16. -(NSManagedObjectContext *)managedObjectContext;
  17. //保存MTLModel对象至coredata
  18. -(BOOL)saveMTLModel:(MTLModel *)mtlModel
  19. error:(NSError * __autoreleasing *)error;
  20. //从coredata中提取出MTLModel
  21. -(MTLModel *)getMTLmodel:(MTLModel *)mtlModel
  22. error:(NSError *__autoreleasing *)error;
  23. //+ (NSFetchRequest *)fetchRequest;
  24. @end



    .m文件

    [objc] view plaincopyprint?在CODE上查看代码片派生到我的代码片
    1. #import "Persistence.h"
    2. @implementation Persistence
    3. @synthesize managedObjectContext;
    4. @synthesize managedObjectModel;
    5. @synthesize persistentStoreCoordinator;
    6. //确定sqlite文件存储路径
    7. -(NSURL *)storeURL{
    8. //得到数据库的路径
    9. // NSString *docs = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    10. // //CoreData是建立在SQLite之上的,数据库名称需与Xcdatamodel文件同名
    11. // NSURL *storeUrl = [NSURL fileURLWithPath:[docs stringByAppendingPathComponent:@"CoreData.sqlite"]];
    12. NSArray *documnetDir=NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES);
    13. NSString *docDir=[documnetDir objectAtIndex:0];
    14. NSString *path=[docDir stringByAppendingPathComponent:@"CoreData.sqlite"];
    15. NSURL *storeURL=[NSURL fileURLWithPath:path];
    16. return storeURL;
    17. }
    18. //初始化Core Data使用的数据库
    19. -(NSManagedObjectModel *)managedObjectModel
    20. {
    21. if (managedObjectModel != nil) {
    22. return managedObjectModel;
    23. }
    24. return [NSManagedObjectModel mergedModelFromBundles:nil];
    25. }
    26. //managedObjectModel的初始化赋值函数
    27. -(NSPersistentStoreCoordinator *)persistentStoreCoordinator
    28. {
    29. if (persistentStoreCoordinator != nil) {
    30. return persistentStoreCoordinator;
    31. }
    32. NSError *error = nil;
    33. persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc]
    34. initWithManagedObjectModel:self.managedObjectModel];
    35. if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
    36. configuration:nil
    37. URL:[self storeURL]
    38. options:nil
    39. error:&error]) {
    40. NSLog(@"Error: %@,%@",error,[error userInfo]);
    41. [NSException raise:@"open failed" format:@"Reason:%@",[error localizedDescription]];
    42. }
    43. return persistentStoreCoordinator;
    44. }
    45. //managedObjectContext的初始化赋值函数
    46. -(NSManagedObjectContext *)managedObjectContext
    47. {
    48. if (managedObjectContext != nil) {
    49. return managedObjectContext;
    50. }
    51. NSPersistentStoreCoordinator *coordinator =self.persistentStoreCoordinator;
    52. if (coordinator != nil) {
    53. managedObjectContext = [[NSManagedObjectContext alloc]init];
    54. [managedObjectContext setPersistentStoreCoordinator:coordinator];
    55. }
    56. return managedObjectContext;
    57. }
    58. //保存MTLModel对象至coredata
    59. -(BOOL)saveMTLModel:(MTLModel *)mtlModel
    60. error:(NSError *__autoreleasing *)error{
    61. //-----Need Add Remove the Entity First START---------
    62. NSManagedObject *ex
首页 上一页 1 2 3 4 下一页 尾页 2/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇c++参数传递 下一篇uva 10006 数论入门题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: