- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在使用 Core Data 存储一个包含可转换 NSDictionary 属性的实体。存储后,我可以在 .SQLite 文件中看到一个对象,所以我认为(?)我在那里很好。但是,当我尝试检索整个实体时,我得到一个 NSArray,其中一个元素 [0] 为 nil 并且(当然)在我尝试访问任何属性时崩溃。
HVBAppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
NSManagedObjectContext *context = [appDelegate managedObjectContext];
NSEntityDescription *entityDesc = [NSEntityDescription entityForName:@"Events" inManagedObjectContext:context];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setEntity:entityDesc];
NSError *error;
NSArray *objects = [context executeFetchRequest:fetchRequest error:&error];
// [objects count] = 1 but objects[0] = nil
// and the following line crashes of course
NSMutableDictionary *data = objects[0][@"data"];
知道我做错了什么吗?谢谢!
(请注意,我已经设置了一个具有 NSDictionary 属性和其他属性的事件类。)
以下是我设置实体的方式:
事件.h:
事件.m:
最佳答案
我知道发生了什么:
首先,'objects' 有一行但显示为“空”的原因是因为这是默认行为。在您明确要求之前不会检索值,除非您通过发送 setReturnsObjectsAsFaults 消息来更改它:
[fetchRequest setReturnsObjectsAsFaults:NO];
请注意,NSLogging 对象没有这个产生“数据:”。
其次,也是最重要的,“对象”不是 NSDictionary 或 NSMutableDictionary 的 NSArray。因此,虽然我可以将 [objects objectAtIndex:0]"替换为 "objects[0]
,但我无法将 [objects[0] valueForKey:@"created"]
替换为[对象[0][@“创建”]
。这就是导致崩溃的原因。
希望这对某人有帮助!
关于iOS 核心数据 executeFetchRequest 返回空对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23250749/
我在使用 Core Data 时遇到了一个奇怪的问题。目标是iOS 5.0 这行代码: NSArray *results = [self executeFetchRequest:request
我正在尝试在 iOS 7 应用程序中实现 Core Data(并且之前已成功完成)。但是,当我执行executeFetchRequest 方法时,应用程序崩溃了。下面添加了最相关的代码: #impor
我的 Objective-C 代码中有一个奇怪的问题。我有一个 View Controller ,我在“viewWillAppear”中调用自己的 loadData 方法。这很酷,直到 View 第三
必须在创建该线程的同一线程中使用AFAIK ManagedObjectContext,否则可能由于锁定而冻结。 我遇到的情况是尝试在主线程中创建executeFetchRequest:error:时被
我的提取请求工作正常,我可以毫无问题地获取我提取的对象。我想做的是在实体不存在的情况下处理错误。问题是,我无法处理错误,因为当我调用 executeFetechRequest: error: 时应用程
我的 View Controller 中有一个“书籍”方法,它获取核心数据中的所有书籍并返回它们的数组。我经常依赖 self.books - 当我需要知道它在某个索引处是哪本书、有多少本书等时,boo
我是一名 iOS 开发新手。我正在尝试将 executeFetchRequest 的结果导入到我创建的结构中,以便稍后查看到表中。我在 func getTasks() 中得到“数组索引超出范围”,我很
我正在使用 AppDelegate 的默认 managedObjectContext,当我在其上执行 executeFetchRequest 时,它永远不会转到下一行或因错误而崩溃。这是在后台线程上进
我在 Core Data 中遇到了一个奇怪的问题。基本上,我有一个空的核心数据,其中包含学生和教师等多个模型。我尝试执行以下代码: NSFetchRequest *request = [NSFetch
我正在做一个 Core Data 教程,但我总是遇到崩溃。这是一个 objc_exception_throw。 我创建了一个名为 loadTableData 的方法并在 viewDidLoad 中调用
我最近在使用我的 iOS 应用程序时遇到了一个奇怪的问题,并且不知道如何解决它。 在第一次运行期间,有一个在后台运行的方法,它从游戏中下载项目列表和项目属性,并将其存储在 Core Data 中以供以
我正在使用 Core Data 存储一个包含可转换 NSDictionary 属性的实体。存储后,我可以在 .SQLite 文件中看到一个对象,所以我认为(?)我在那里很好。但是,当我尝试检索整个实体
我不知道发生了什么,但它突然在 Visibility.m 实体类的下一行崩溃。我没有对这些类(class)进行任何更改,并且它曾经完美地工作。唯一的问题是我错误地删除了模型。我已经从备份中恢复它并再次
我开发了一个针对iPhone的应用程序,它使用CoreData。在模拟器上运行时,一切正常,但是在设备上运行时,出现以下错误: "*** Terminating app due to uncaught
我正在尝试将外部数据添加到 SQLite 中/使用 Core Data 更新现有数据。 基本上,我从外部 Web 服务获得了一个 JSON,我正在使用以下代码来确定我是应该在数据库中添加新对象还是更新
我在使用核心数据时遇到奇怪的数据丢失问题。 我使用以下代码将记录保存到核心数据。 for (int i = 0; i < [domains count]; i++){ NSSt
附件是我的代码。 给我问题的那一行是 let fetchRequest = try moc.executeFetchRequest(fetchRequest) as! [AppSettings] 似乎
在我的 ViewController 中打招呼: [super viewDidLoad]; context = [[AppDelegate sharedAppDelegate] managedObje
这个问题在这里已经有了答案: Swift 2 ( executeFetchRequest ) : error handling (5 个答案) 关闭 7 年前。 https://www.dropbo
我有一个 saveMOC,它是 mainMOC 的直接父级,我需要在线获取另一个 tmpMOC 以免阻塞我的 UI,同时从互联网上获取大量记录。 我的应用卡住了。我可以将其缩小到这一点:
我是一名优秀的程序员,十分优秀!