objective-c - 滚动表时向核心数据发出获取请求

标签 objective-c ios xcode cocoa-touch core-data

这是我在 cellForRowAtIndexPath 中调用的内容:

   NSManagedObjectContext *context = [[AppDelegate sharedAppDelegate] managedObjectContext];
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription
                                   entityForName:@"Favorites" inManagedObjectContext:context];
    [fetchRequest setEntity:entity];

    NSPredicate *requestPredicate = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"(link like '%@')",articleLink]];
    [fetchRequest setPredicate:requestPredicate];

    [fetchRequest setFetchBatchSize:1];
    NSError *error = nil;
    NSUInteger count = [context countForFetchRequest:fetchRequest error:&error];
    NSLog(@"Count - %d", count);
    if (count == 0)
        return NO;
    else
        return YES;

基本上它会检查我的模型中是否存在某个项目。非常有用,但我认为在这么短的时间内发出如此多的提取请求有什么问题吗?

电池管理有任何问题,每次调用时是否从磁盘读取?

还有更好的吗?

谢谢!

最佳答案

您不想在滚动时进行抓取。它会破坏您的滚动性能。

根据您提到的代码,您正在尝试根据链接是否已存储对单元格执行某些操作。

我可能会在加载 View Controller 时预先执行该操作并将其存储在内存中,然后在滚动时检查该值。

关于objective-c - 滚动表时向核心数据发出获取请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13331770/

相关文章:

Java 到 Objective c

iphone - 通用应用程序工作流程

ios - 可以在后台运行并可以连接到设备的IOS应用程序

objective-c - iOS、iSGL3D 和立方体

ios - 使 AppDelegate 接收来自自定义库的回调事件

ios - SwiftUI:打开带有动态内容的模式表仅在第一次尝试时失败

C++继承/未声明的标识符问题

ios - Google iOS API Auth2 登录空白屏幕

objective-c - NSOperationQueue 内的 NSOperation 导致应用程序卡住 waitUntilFinished :YES

ios - 单击链接后在谷歌地图应用程序中显示特定位置