- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在完成我的 Core Data 应用程序,并开始最终测试。
Everyfing 工作正常,除了一件事,它是随机发生的,而且我无法重现它。
这是日志(使用 NSZombieEnabled):
2011-07-03 20:27:53.144 MYAPP[1882:707] -[__NSCFType controllerWillChangeContent:]: unrecognized selector sent to instance 0x4a4c490
2011-07-03 20:27:53.149 MYAPP[1882:707] Serious application error. Exception was caught during Core Data change processing. This is usually a bug within an observer of NSManagedObjectContextObjectsDidChangeNotification. -[__NSCFType controllerWillChangeContent:]: unrecognized selector sent to instance 0x4a4c490 with userInfo (null)
2011-07-03 20:27:53.165 MYAPP[1882:707] CoreAnimation: ignoring exception: -[__NSCFType controllerWillChangeContent:]: unrecognized selector sent to instance 0x4a4c490
它在这里崩溃了:
NSManagedObjectContext *context = [(AppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext]; // IT'S OK
NSManagedObject *newManagedObject = [NSEntityDescription insertNewObjectForEntityForName:@"Kontrahent" inManagedObjectContext:context]; // IT'S OK
for(NSString *key in kontrahent) [newManagedObject setValue:[kontrahent valueForKey:key] forKey:key]; // IT'S OK
NSError *error = nil;
if (![context save:&error]) { // IT'S NOT OK
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
我的操作层次结构:
1. Open application
2. Open my 'root' list (with NSFetchedResultsController, entity: "Faktura")
3. Tap 'Add' button
4. In my 'Add' view controller I create another object (entity: "Kontrahent")
5. I try to add it to database
6. It crashes / It doesn't.
SCHEME:
+---[moc save:]---> Faktury (my root class)
| ↓
+-----delegate-- FakturaCreator <---[moc save:]--+ <--- HERE IT CRASHES
↓ |
KontrahentCreator ---delegate---+
我知道它与 NSFetchedResultsController
和 [moc save:]
连接。但我找不到我的问题,因为它会在需要时崩溃。有时它有效,有时它崩溃。如果您知道这个问题,请帮助我:)
NSFetchedResultsController 内容(Faktury.m)
#pragma mark - Fetched results controller
- (NSFetchedResultsController *)fetchedResultsController {
if (__fetchedResultsController != nil) return __fetchedResultsController;
// Setup the table
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Faktura" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
// Setup the sort descriptors
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"NumerFV" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
// Create the fetched results controller
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:@"Root"];
aFetchedResultsController.delegate = self;
self.fetchedResultsController = aFetchedResultsController;
[aFetchedResultsController release];
[fetchRequest release];
[sortDescriptor release];
[sortDescriptors release];
NSError *error = nil;
if (![self.fetchedResultsController performFetch:&error]) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Błąd Krytyczny" message:@"Wystąpił nieznany błąd przy zmienianiu zawartości w bazie danych. Dla dobra twoich danych prosimy niezwłocznie wyjść z aplikacji i spróbować ponownie." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
[alert release];
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
return __fetchedResultsController;
}
#pragma mark - Fetched results controller delegate
- (void)controllerWillChangeContent:(NSFetchedResultsController *)controller {
[tableView beginUpdates];
}
- (void)controller:(NSFetchedResultsController *)controller didChangeSection:(id <NSFetchedResultsSectionInfo>)sectionInfo
atIndex:(NSUInteger)sectionIndex forChangeType:(NSFetchedResultsChangeType)type {
switch(type) {
case NSFetchedResultsChangeInsert:
[tableView insertSections:[NSIndexSet indexSetWithIndex:sectionIndex] withRowAnimation:UITableViewRowAnimationFade];
break;
case NSFetchedResultsChangeDelete:
[tableView deleteSections:[NSIndexSet indexSetWithIndex:sectionIndex] withRowAnimation:UITableViewRowAnimationFade];
break;
}
}
- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject atIndexPath:(NSIndexPath *)indexPath
forChangeType:(NSFetchedResultsChangeType)type newIndexPath:(NSIndexPath *)newIndexPath {
if([[[controller sections] objectAtIndex:0] numberOfObjects] == 0) {
emptySectionView.hidden = NO;
UIBarButtonItem *editBtn = [[UIBarButtonItem alloc] initWithTitle:@"Edytuj" style:UIBarButtonItemStyleBordered target:self action:@selector(toogleEditing)];
editBtn.enabled = NO;
[self.navigationItem setLeftBarButtonItem:editBtn animated:NO];
[editBtn release];
} else {
emptySectionView.hidden = YES;
self.navigationItem.leftBarButtonItem.enabled = YES;
}
UITableView *table = tableView;
switch(type) {
case NSFetchedResultsChangeInsert:
[table insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath] withRowAnimation:UITableViewRowAnimationFade];
break;
case NSFetchedResultsChangeDelete:
[table deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationLeft];
break;
case NSFetchedResultsChangeUpdate:
[self configureCell:(KSTableViewCell *)[table cellForRowAtIndexPath:indexPath] atIndexPath:indexPath];
break;
case NSFetchedResultsChangeMove:
[table deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
[table insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath]withRowAnimation:UITableViewRowAnimationFade];
break;
}
}
- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller {
[tableView endUpdates];
}
当我点击添加按钮时(Faktury.m)
- (void)add:(id)sender {
FakturaCreator *form = [[FakturaCreator alloc] init];
form.hidesBottomBarWhenPushed = YES;
form.delegate = self;
form.managedObjectContext = self.managedObjectContext;
[self.navigationController pushViewController:form animated:YES];
[form release];
}
最佳答案
好的,我找到了我的问题。我有一个“KontrahentPicker”,它也有 NSFetchedResultsController
。但是这个UIViewController
被呈现为modalViewController
。我按下了 Kontrahent
,模态被驳回并释放。但 NSFRC
的代表仍然活跃。
我通过放置解决了我的问题
self.fetchedResultsController.delegate = nil;
在-dealloc
方法中。
关于iphone - 核心数据: Serious application error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6565422/
该程序是一个显示媒体的系统:图像、视频并在它们之间不断交替。问题是使用增加内存:编程运行30分钟后,消耗1.2GB内存 我不太清楚我能做什么,我相信内存消耗增加的原因是递归(函数调用自身)或者每次给出
看完this关于为什么 google/facebook 等添加无法解析的内容的问题,例如: while(1); for(;;); &&&START&&& ... &&&END&&& 1 和 3 组合
我正在完成我的 Core Data 应用程序,并开始最终测试。 Everyfing 工作正常,除了一件事,它是随机发生的,而且我无法重现它。 这是日志(使用 NSZombieEnabled): 201
我正在使用 Appcelerator 并想做一些视频处理。我遇到了 Seriously.js,发现您可以在“节点”管道中进行一些令人印象深刻的图像和视频流操作。因此,在进行这项工作的应用加速器部分之前
我正在尝试调整 Canvas DOM 元素中相机显示的大小。我尝试过使用事件监听器,并且能够毫无问题地调整 Canvas 大小。然而,相机的视频源不会更新其大小,它保持与初始化时相同。为了使其工作,我
背景:我有一个模仿 fgets(character, 2, fp) 的小例程,只是它从字符串而不是流中获取字符。 newBuff 是动态分配的字符串,作为参数传递,字符被声明为 char charac
Linux的“手动关闭”警告(SVr4、4.3BSD,POSIX.1-2001): Not checking the return value of close() is a common but n
我目前正在调查我的 Android 应用程序的垃圾收集问题,我很想知道 GC_FOR_ALLOC 是否表明存在比其他 GC 消息(例如 GC_CONCURRENT)更大的问题。 据我了解,GC_CON
这个问题在这里已经有了答案: Why should casting be avoided? [closed] (14 个答案) 关闭 9 年前。 来自 http://www.stroustrup.c
我正在开发一个应用程序,允许用户管理一些单独的数据点。我的用户想要做的事情之一是“删除”,但这意味着什么? 对于网络应用程序来说,向用户提供严格删除或使用“垃圾”系统的选项是否更好? 在“严重删除”下
好的, 这是我在 stackoverflow 上发表的第一篇文章。几个小时以来,我一直在用头撞墙。我讨厌输入问题;你可以相信我已经竭尽全力地尝试自己解决这个问题。我对以下错误进行了一些研究,但仍然无法
我网站的管理部分有一堆非常慢的报告生成脚本,它们在生成时逐行echo 输出。要立即将此输出刷新到浏览器,而不是用户必须等待几分钟才能看到任何响应,我们有 output_buffering禁用,我们调用
嗨,我要崩溃了, 当我试图在后台将 1000 条记录插入数据库时,出现以下异常:CoreData:错误:严重的应用程序错误。在核心数据更改处理期间捕获到异常。 这通常是 的观察者中的错误 NSMa
我在开发我的 iPhone 应用程序时遇到了重大问题。 这是完整的错误: CoreData: error: Serious application error. Exception was caug
已结束。此问题不符合 Stack Overflow guidelines .它目前不接受答案。 我们不允许提出有关书籍、工具、软件库等方面的建议的问题。您可以编辑问题,以便用事实和引用来回答它。 关闭
有一个包含图像的容器组件。这个容器应该是 后面不同容器组件中的文本。两个容器组件距离 Root 元素的深度相同。解释确切的结构有点复杂。 问题的要点是 zIndex 在 iOS 上受尊重,但在 And
(不,这不是家庭作业,我只是发现了这个错误并认为在这里分享它可能会有用) import java.util.List; public class BubbleSorter { public >
目标是将一系列视网膜图像转换为单个视频。 下面的两个函数负责将 UIImage 写入 AVAssetWriterInputPixelBufferAdaptor。它们起作用了,并且代码从图像中生成了看似
我正在尝试在 Meteor 应用程序中使用 Seriously.js 库 ( https://github.com/brianchirls/Seriously.js/ )。我已将该库放在我的 mete
我正在 iOS 上编写一个程序,我正面临这个错误: 2015-11-06 10:57:24.289 NETFNET[2503:976392] CoreData: error: Serious appl
我是一名优秀的程序员,十分优秀!