从 NSCOREDATA 加载 NSARRAY

Posted

技术标签:

【中文标题】从 NSCOREDATA 加载 NSARRAY【英文标题】:Load NSARRAY from NSCOREDATA 【发布时间】:2014-06-19 15:28:08 【问题描述】:

我已经在我的 nscoredatabase 中保存了一个 NSARRAY 在使用此代码保存的二进制数据类型属性中

AppDelegate *AppDelegate = [[UIApplication sharedApplication] delegate];

NSManagedObjectContext *context =
[AppDelegate managedObjectContext];

//guardar array
NSData *arrayData = [NSKeyedArchiver archivedDataWithRootObject:roll];


    NSManagedObject *newContact;

newContact = [NSEntityDescription
              insertNewObjectForEntityForName:@"Horarios"
              inManagedObjectContext:context];

   [newContact setValue:arrayData forKey:@"valor"];


    NSError *error;
    [context save:&error];

但我不知道如何从数据存储中取回它以再次使用此 NSARRAY

有人可以帮助我吗?

【问题讨论】:

load it again 是什么意思?您的意思是如何将新对象从数据存储中取出? 没错,从数据存储中获取 developer.apple.com/library/ios/documentation/DataManagement/… 【参考方案1】:

试试这个代码:

NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Horarios"];
NSError *error;
NSArray *matches = [managedObjectContext executeFetchRequest:fetchRequest error:&error];

【讨论】:

我明白了:“ (实体: Horarios; id: 0x9f33eb0 ; 数据: )" 我想我需要做更多才能转换为普通数组 您的NSLog 声明是什么?你能把它贴出来吗?还是更一般地发布?否则很难帮你! 我的 *matches 数组的 NSLOG 是:“ (entity: Horarios; id: 0x11350a50 ; 数据:)", AppDelegate *AppDelegate = [[UIApplication sharedApplication] delegate]; NSManagedObjectContext *context = [AppDelegate managedObjectContext]; NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Horarios"]; NSError *错误; NSArray *matches = [context executeFetchRequest:fetchRequest error:&error]; NSLog(@"%@", 匹配);【参考方案2】:

已解决添加此行

[fetchRequest setReturnsObjectsAsFaults:NO];

【讨论】:

以上是关于从 NSCOREDATA 加载 NSARRAY的主要内容,如果未能解决你的问题,请参考以下文章

能够从应用程序包加载文件,但不能从测试应用程序包加载

从 NIB 与从代码加载自定义滑块:从代码加载时不存在子视图

从源码透彻理解JVM类加载机制

Nuxtjs - 图像可以从 HTML 加载,但不能从 css/scss 文件加载

freemarker:模板加载器:从 zip 文件加载模板

as3 从网络外部加载 swf 以控制从网络外部加载的 swf