iOS应用程序中的常用按钮功能

iOS应用程序中的常用按钮功能,ios,uitableview,core-data,uibutton,Ios,Uitableview,Core Data,Uibutton,我一直在开发iOS应用程序,我的应用程序表现出了奇怪的行为 情景: 我有一个有两个按钮的屏幕。第一个按钮命名为“所有对象”,第二个按钮命名为“我的收藏夹对象” 单击其中一个按钮,我将打开一个带有自定义单元格的表视图控制器。 每个单元都有按钮星,使其成为最受欢迎的单元。之后,我按下star键,将remoteID和1保存到Core数据和其他表中的Favorite中,但当我保存查询并检查我的Favorites时,它没有显示任何内容。在这个按钮上,我编写了从收藏夹按钮获取所有对象的代码 常用按钮iAct

我一直在开发iOS应用程序,我的应用程序表现出了奇怪的行为

情景:

我有一个有两个按钮的屏幕。第一个按钮命名为“所有对象”,第二个按钮命名为“我的收藏夹对象”

单击其中一个按钮,我将打开一个带有自定义单元格的表视图控制器。 每个单元都有按钮星,使其成为最受欢迎的单元。之后,我按下star键,将remoteID和1保存到Core数据和其他表中的Favorite中,但当我保存查询并检查我的Favorites时,它没有显示任何内容。在这个按钮上,我编写了从收藏夹按钮获取所有对象的代码

常用按钮iAction方法的代码

视图中的代码没有为我的收藏夹对象加载ViewController


这里的计数为零

我尝试了你的代码,我在这里没有看到任何缺陷,我想知道的是有关宏应用程序委托的信息,这是从你的代码中激发出来的更新代码

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

AppDelegate *appDel =  [UIApplication sharedApplication].delegate;
currentContext = appDel.managedObjectContext;

[self storeFavourites];
[self getFavourites];

}
//存储收藏夹方法

- (void)storeFavourites{
NSEntityDescription *sessionFavourite = [NSEntityDescription entityForName:@"Favourite" inManagedObjectContext:currentContext];

Favourite *favor =(Favourite *)[[NSManagedObject alloc] initWithEntity:sessionFavourite insertIntoManagedObjectContext:currentContext];
favor.remoteId = [NSNumber numberWithInteger:1]; // assuming this is integer as you have used some [sd remoteId]
favor.isFav = [NSNumber numberWithInt:2]; 

NSError *error;
if (![currentContext save:&error]) {
    NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]);
}
}
save方法工作正常,因为我已经在应用程序主目录中验证了这一点,现在添加了fetch方法

- (void)getFavourites{
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Favourite" inManagedObjectContext:currentContext];

[fetchRequest setEntity:entity];

NSError *error = nil;
NSArray *result = [currentContext executeFetchRequest:fetchRequest error:&error];
NSLog(@"%lu",(unsigned long)result.count);
}
要解决此问题,请添加调试器并检查managedObjectContext是否有内存,很多情况下,这是无法获取/添加数据的常见问题


希望它有帮助

首先检查最喜欢的项目是否保存在数据库中,如果没有,那么可能就是您需要修复一些代码的地方。或者,若记录保存在数据库中,请重新访问您的查询,从核心数据中获取记录。另外,请向我们展示一些代码,如果没有这些代码,我们可以为您提供假设,而不是指出您的错误所在。@NSDumb我已经编辑了我的问题并添加了代码。@Wain我已经编辑了我的问题并添加了代码。谢谢,它正在发挥作用,而且我已经掌握了创建函数的策略。再次感谢。
- (void)storeFavourites{
NSEntityDescription *sessionFavourite = [NSEntityDescription entityForName:@"Favourite" inManagedObjectContext:currentContext];

Favourite *favor =(Favourite *)[[NSManagedObject alloc] initWithEntity:sessionFavourite insertIntoManagedObjectContext:currentContext];
favor.remoteId = [NSNumber numberWithInteger:1]; // assuming this is integer as you have used some [sd remoteId]
favor.isFav = [NSNumber numberWithInt:2]; 

NSError *error;
if (![currentContext save:&error]) {
    NSLog(@"Can't Save! %@ %@", error, [error localizedDescription]);
}
}
- (void)getFavourites{
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Favourite" inManagedObjectContext:currentContext];

[fetchRequest setEntity:entity];

NSError *error = nil;
NSArray *result = [currentContext executeFetchRequest:fetchRequest error:&error];
NSLog(@"%lu",(unsigned long)result.count);
}