使用 UICollectionView 和 NSFetchedResultsController
Posted
技术标签:
【中文标题】使用 UICollectionView 和 NSFetchedResultsController【英文标题】:Use UICollectionView and NSFetchedResultsController 【发布时间】:2013-01-25 01:10:50 【问题描述】:我正在使用在 github 上找到的一个项目,它允许我使用 NSFetchedResultsController
和 UICollectionView
,该项目是 this
但是当我像这样保存一个新对象时:
NSManagedObject *doc = [NSEntityDescription insertNewObjectForEntityForName:@"Document" inManagedObjectContext:self.managedObjectContext];
[doc setValue:[title contents] forKey:@"docName"];
[doc setValue:element valueforKey:@"Element"]
[self saveContext];
我收到此错误:
CoreData: error: Serious application error. Exception was caught during Core Data change processing. This is usually a bug within an observer of NSManagedObjectContextObjectsDidChangeNotification. Can't perform collection evaluate with non-collection object. with userInfo (null)
我已尝试删除该项目,并且保存有效,所以我认为该项目存在问题,有什么帮助吗?
【问题讨论】:
【参考方案1】:我建议您导出 NSManagedObject 子类并如下声明您的对象:
// At top of the file:
#import "Document.h"
// In your Method:
Document *doc = (Document *)[NSEntityDescription insertNewObjectForEntityForName:@"Document" inManagedObjectContext:self.managedObjectContext];
doc.docName = title.contents;
NSError *error = nil;
[self.managedObjectContext save:&error];
if (error != nil)
NSLog(@"Oh no! Something terrible happened! Error: %@", error);
else
NSLog(@"Saved! Yay!");
【讨论】:
不起作用,我已经尝试过这种方法,我用完整代码打开了一个新问题:***.com/questions/14519172/…以上是关于使用 UICollectionView 和 NSFetchedResultsController的主要内容,如果未能解决你的问题,请参考以下文章
xxx.nsf has not been opened yet解决方法