iPhone4 Core Data如何插入带有节号的新对象?
Posted
技术标签:
【中文标题】iPhone4 Core Data如何插入带有节号的新对象?【英文标题】:iPhone4 Core Data how to insert a new object with section number? 【发布时间】:2011-11-20 19:39:37 【问题描述】:我正在尝试将新对象插入到我的核心数据结构中,并让它们知道它们属于哪个部分。
这是我的插入方法,我需要在新记录中添加某个部分。
-(void)insertNewReminderWithSequenceNumber:(int)sequenceNumber
// Create a new instance of the entity managed by the fetched results controller.
NSManagedObjectContext *context = [self.remindersController managedObjectContext];
NSEntityDescription *entity = [[self.remindersController fetchRequest] entity];
Reminder *newManagedObject = (Reminder*)[NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context];
newManagedObject.sequenceNumber = [NSNumber numberWithInt:sequenceNumber];
这是我的检索方法,请注意我将部分设置为零。
-(Reminder*)getReminderAtIndex:(int)index
NSIndexPath* temp = [NSIndexPath indexPathForRow:index inSection:0];
Reminder* reminder = nil;
@try
reminder= [self.remindersController objectAtIndexPath:temp];
@catch (NSException *exception)
NSLog(@"Exception accessing event at index: %i", index);
return nil;
@finally
return reminder;
如何将对象插入核心数据,以便能够通过包含节号和行号的 indexPath 检索它们?
谢谢!
【问题讨论】:
【参考方案1】:只需使用提供的方法objectAtIndexPath
:
Reminder *reminder = (Reminder *) [self.fetchedResultsController
objectAtIndexPath];
这与您如何将对象插入托管对象上下文无关。相反,您必须使用NSFetchedResultsController
的sectionNameKeyPath
参数指定您的部分。
【讨论】:
以上是关于iPhone4 Core Data如何插入带有节号的新对象?的主要内容,如果未能解决你的问题,请参考以下文章
在 NSFetchResultsController 中派生节号
如何自动选择插入到 NSOutlineView & Core Data 中的项目
如何在Core Data中使用带有fetchRequest的谓词