我肯定这是个愚蠢的问题,但不幸的是,我和很多人一样,是个菜鸟(嗯,也许现在不那么容易了,哈哈……)。
不管怎样..。
我有一个现有的项目,其中包含一个通过我自己的类(MyListTableViewController)填充的MyListTableViewController。这个类当前子类的对象本质上设置了NSFetchedResultsController。
考虑到这一事实,我所读过的示例和文档始终表明需要对QuickDialogController进行子类化,以便访问QuickDialog特性,因为它基本上是在所有这些特性的核心部分子类UIViewController。
问题是,我不知道如何允许在同一个UITableView/实例中同时使用QuickDialogController和NSFetchedResultsController类.
NSFetchedResultsController之所以被子类化,是因为它充当UITableView的委托,还因为它监视所有UITableView事件等等。我确信大多数人都很清楚.问题是,我可以看到QuickDialogController也想充当UIView (我们的UITableView已经是子类)的基本委托。
所以,这让我的头脑觉得它会爆炸,因为我试图让这两个物体在同一个集合中很好地一起玩……
由于我的应用程序与核心数据紧密耦合,我需要这个功能,但我想要QuickDialog的力量和美丽。
那么-是否有一种方法可以将QuickDialogController子类化,然后将NSFetchedResultsController作为一种委托使用,反之亦然?
再次抱歉如果这是个愚蠢的问题..。还在学习但想做好这件事..。
示例(当前)用于UITableViewController的子类布局.
MyListTableViewController.h
#import <UIKit/UIKit.h>
#import "CoreDataTableViewController.h"
@interface MyListTableViewController : CoreDataTableViewControllerCoreDataTableViewController.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进行子类化。如果是这样的话--这样做意味着什么?(最重要的是)是否有一个小的例子?我是否只需要为其中一个创建一个分配的实例?
我事先为我的问题可能暴露的无知道歉..。
发布于 2012-10-13 17:39:00
你想做的事是不可能的。ObjC不允许多重继承,这就是您要做的事情。即使是这样,现在仍然存在核心datasource/委托和QuickDialog数据源/委托同时工作的问题。
您需要决定一种或另一种方式:1-要么从QuickDialog控制器继承,然后添加逻辑从CoreData获取数据并自己加载到根元素中(并且不使用CoreDataTableViewController)或者。2-从CoreDataTableViewController继承,并手动创建QuickDialogTableView及其类上的数据源/委托。
关于#2,QD不是为这种用法而创建的,IMHO。您最好使用选项1,将CoreData数据的加载移到外部类中,然后将其加载到根元素中。但是,如果您有数百行/数千行,我就不会使用QD。
https://stackoverflow.com/questions/12870347
复制相似问题