gpt4 book ai didi

ios - UITableView 的 QuickDialog 和 NSFetchedResultsController

转载 作者:行者123 更新时间:2023-11-29 04:21:58 25 4
gpt4 key购买 nike

我确信这是一个愚蠢的问题,但不幸的是我和很多人一样是个菜鸟(好吧,也许现在不那么傻了哈哈......)。

无论如何...

我有一个现有项目,其中包含通过我自己的类(MyListTableViewController)填充的 UITableView。该类当前是一个对象的子类,该对象本质上设置了 NSFetchedResultsController。

考虑到这一事实,我读过的示例和文档始终表明需要子类化 QuickDialogController 才能访问 QuickDialog 功能,因为它基本上是子类化 UIViewController 的核心。

问题是我不知道如何允许在同一个 UITableView/Instance 中同时使用 QuickDialogController 和 NSFetchedResultsController 类...

NSFetchedResultsController 正在被子类化,因为它充当 UITableView 的委托(delegate),也因为它监视所有 UITableView 事件等......我相信大多数人都清楚的事情......问题是我可以看到 QuickDialogController 也想基本上充当 UIView 的委托(delegate)(我们的 UITableView 已经是它的子类)

所以,当我试图弄清楚如何让这两个对象在同一个集合中很好地协同工作时,我的思维感觉就像要爆炸一样......

由于我的应用程序与核心数据紧密耦合,因此我需要此功能,但我想要 QuickDialog 的强大功能和美观性。

那么 - 有没有一种方法可以子类化 QuickDialogController,然后将 NSFetchedResultsController 用作它的一种委托(delegate),反之亦然?

再次,抱歉,如果这是一个愚蠢/菜鸟的问题...仍在学习,但想要正确地做到这一点...

我用于 UITableViewController 的示例(当前)子类布局...

MyListTableViewController.h

#import <UIKit/UIKit.h>
#import "CoreDataTableViewController.h"

@interface MyListTableViewController : CoreDataTableViewController

CoreDataTableViewController.h

#import <UIKit/UIKit.h>
#import <CoreData/CoreData.h>

@interface CoreDataTableViewController : UITableViewController <NSFetchedResultsControllerDelegate>

@property (strong, nonatomic) NSFetchedResultsController *fetchedResultsController;
@property (nonatomic) BOOL suspendAutomaticTrackingOfChangesInManagedObjectContext;

-(void)performFetch;
@end

也许这里的另一个问题是:是否可以使用 QuickDialog 操作而不必子类化 QuickDialogController。如果是这样 - 这样做的含义是什么,(最重要的是)有一个小例子吗?我会只创建这两个实例之一的分配实例吗?

对于我的问题可能暴露的任何无知,我提前表示歉意......

最佳答案

你想做的事情是不可能的。 ObjC 不允许多重继承,而这正是您想要做的。即使确实如此,您仍然会遇到核心数据数据源/委托(delegate)和 QuickDialog 数据源/委托(delegate)同时工作的问题。

您需要决定一种或另一种方式:1 - 要么继承 QuickDialog Controller ,然后添加逻辑以从 CoreData 获取数据并自己加载到 Root 元素中(并且不使用 CoreDataTableViewController),或者..2 - 继承 CoreDataTableViewController,并在您的类上手动创建 QuickDialogTableView 及其数据源/委托(delegate)。

关于#2,恕我直言,QD 并不是为这种用途而创建的。您最好选择选项 1,并将 CoreData 数据的加载移至外部类,然后您可以将其加载到 Root 元素中。不过,如果您有数百/数千行,我不会为此使用 QD。

关于ios - UITableView 的 QuickDialog 和 NSFetchedResultsController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12870347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com