所以我想根据用户选择显示一些信息,我希望这个选择保存在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它写,但它不读。感谢您的帮助。
答案 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;
}
您可能需要考虑为该属性使用其他名称。具有与该类相同的属性可能会令人困惑。