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];

这与您如何将对象插入托管对象上下文无关。相反,您必须使用NSFetchedResultsControllersectionNameKeyPath 参数指定您的部分。

【讨论】:

以上是关于iPhone4 Core Data如何插入带有节号的新对象?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用带有插入/删除的 Core Data(或 SQL)维护有序表?

Core Data 在 iPhone4 等旧设备上非常慢

iPhone 4 iOS 5 如何使用 Core Data 保存 MPMediaItem?

在 NSFetchResultsController 中派生节号

如何自动选择插入到 NSOutlineView & Core Data 中的项目

如何防止备份带有外部文件的 Core Data 数据库?