阅读时MagicalRecord问题?

时间:2014-02-10 00:17:41

标签: ios core-data magicalrecord

所以我想根据用户选择显示一些信息,我希望这个选择保存在coreData中,以便将来表视图只显示用户想要的信息。

我正在使用MagicalRecord:

+(void)insertNewSeccion:(NSString *)seccion{

[Seccion MR_truncateAll];

[MagicalRecord saveUsingCurrentThreadContextWithBlock:^(NSManagedObjectContext *localContext) {

    Seccion *myseccion = [Seccion MR_createEntity];

    myseccion.seccion = seccion;

    //[[NSManagedObjectContext MR_defaultContext] MR_saveNestedContexts];

} completion:^(BOOL success, NSError *error) {

}];

}

+(NSString *) oneSeccion{

    return [[Seccion MR_findAll] lastObject];

}

我这样称呼(写作):

     - (IBAction)PrepaAction:(id)sender {

    [CoreDataBase insertNewSeccion:@"prep"];

    [self reloadSeccion];
}

阅读:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{

   if ([[CoreDataBase oneSeccion]isEqualToString:@"prep"]) {
        return _TitlePrep.count;
    }
    return 0;

}

我得到这个日志:

[NSManagedObjectContext(MagicalRecord) MR_contextWithStoreCoordinator:](0x4ac0ac) -> Created Context UNNAMED
2014-02-09 16:07:15.206 CMT[54120:70b] +[NSManagedObjectContext(MagicalRecord) MR_setRootSavingContext:](0x4ac0ac) Set Root Saving Context: <NSManagedObjectContext: 0xc871050>
2014-02-09 16:07:15.207 CMT[54120:70b] +[NSManagedObjectContext(MagicalRecord) MR_newMainQueueContext](0x4ac0ac) Created Main Queue Context: <NSManagedObjectContext: 0xc870f00>
2014-02-09 16:07:15.208 CMT[54120:70b] +[NSManagedObjectContext(MagicalRecord) MR_setDefaultContext:](0x4ac0ac) Set Default Context: <NSManagedObjectContext: 0xc870f00>
2014-02-09 16:07:19.722 CMT[54120:70b] -[NSManagedObjectContext(MagicalSaves) MR_saveWithOptions:completion:](0xc870f00) → Saving <NSManagedObjectContext (0xc870f00): *** DEFAULT ***> on *** MAIN THREAD ***
2014-02-09 16:07:19.723 CMT[54120:70b] -[NSManagedObjectContext(MagicalSaves) MR_saveWithOptions:completion:](0xc870f00) → Save Parents? 1
2014-02-09 16:07:19.723 CMT[54120:70b] -[NSManagedObjectContext(MagicalSaves) MR_saveWithOptions:completion:](0xc870f00) → Save Synchronously? 0
2014-02-09 16:07:19.768 CMT[54120:70b] -[Seccion isEqualToString:]: unrecognized selector sent to instance 0xb43e580
2014-02-09 16:07:19.782 CMT[54120:70b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Seccion isEqualToString:]: unrecognized selector sent to instance 0xb43e580'

那有什么不对?问题是在阅读时,因为如果我评论tableview它写,但它不读。感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

-[Seccion isEqualToString:]: unrecognized selector sent to instance 0xb43e580

实例0xb43e580不是字符串,但它是 class Seccion的对象。您应该查找名为seccion属性

更改您的numberOfRowsInSection

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
   if ([[[CoreDataBase oneSeccion] seccion] isEqualToString:@"prep"]) {
   //  ^^                          ^^^^^^^^          
   return _TitlePrep.count;
   }
   return 0;
}

您可能需要考虑为该属性使用其他名称。具有与该类相同的属性可能会令人困惑。