- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 iOS 7 应用程序中实现 Core Data(并且之前已成功完成)。但是,当我执行executeFetchRequest 方法时,应用程序崩溃了。下面添加了最相关的代码:
#import "JTHuntingSeasonDB.h"
@implementation JTHuntingSeasonDB
- (id)init {
self = [super init];
if (self) {
NSFileManager *fileManager = [NSFileManager defaultManager];
NSURL *documentsDirectory = [[fileManager URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] firstObject];
NSString *documentName = @"JTHuntingDB";
NSURL *url = [documentsDirectory URLByAppendingPathComponent:documentName];
document = [[UIManagedDocument alloc] initWithFileURL:url];
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:[url path]];
if (fileExists) {
[document openWithCompletionHandler:^(BOOL success) {
if (success) {
NSLog(@"Document opened successfully");
self.allSpecies = [self getSpecies];
self.speciesToday = [self getSpeciesToday];
} else NSLog(@"Failed to open document");
}];
} else {
[document saveToURL:url forSaveOperation:UIDocumentSaveForCreating completionHandler:^(BOOL success) {
if (success) {
NSLog(@"Document created successfully");
self.allSpecies = [self getSpecies];
self.speciesToday = [self getSpeciesToday];
} else NSLog(@"Failed to create document, path: %@", url);
}];
}
}
return self;
}
#pragma mark - Core Data
- (NSArray *)getSpecies {
if (document.documentState == UIDocumentStateNormal) {
context = document.managedObjectContext;
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *country = [defaults stringForKey:@"Country"];
NSString *subregion = [defaults stringForKey:@"Subregion"];
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"HuntingDates"];
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES selector:@selector(localizedStandardCompare:)];
request.fetchBatchSize = 150;
request.fetchLimit = 150;
request.sortDescriptors = @[sortDescriptor];
if (subregion.length > 0) {
request.predicate = [NSPredicate predicateWithFormat:@"(country IN %@) AND (subregion IN %@)", country, subregion];
} else {
request.predicate = [NSPredicate predicateWithFormat:@"country IN %@", country];
}
NSError *error;
return [context executeFetchRequest:request error:&error];
}
return nil;
}
线路
return [context executeFetchRequest:request error:&error];
导致应用程序崩溃。这是我迄今为止所做和发现的:
编辑:在听从 Wain 的建议后,我关闭了异常断点,得到了一条更具描述性的错误消息,指出谓词无效。通过用 CONTAINS 替换谓词中的 IN 并更改变量“country”以使其不再返回 nil 来解决问题。
最佳答案
我猜这是你的谓词,因为 IN
是一个集合运算符,但你传递的是字符串(应该是数组/集合)。
如果您使用字符串,则应在谓词中使用 CONTAINS
。
关于ios - executefetchrequest 导致崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21491139/
我在使用 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,同时从互联网上获取大量记录。 我的应用卡住了。我可以将其缩小到这一点:
我是一名优秀的程序员,十分优秀!