我设置了一个LibraryDataController类,该类从sqlite数据库获取数据。这是其.h文件:
#import <Foundation/Foundation.h>
#import <sqlite3.h>
@interface LibraryDataController : NSObject{
sqlite3 *database;
}
@property (nonatomic) NSMutableArray *masterPhotoList;
-(NSInteger)listCount;
-(NSString*)objectInListAtIndex:(NSUInteger)index;
-(void)createEditableCopyOfDatabaseIfNeeded;
-(void)initializeDefaultList;
-(void)closeDatabase;
@end
我也有一个包含LibraryDataController成员的库视图:
#import <UIKit/UIKit.h>
@class LibraryDataController;
@interface LibraryViewController : UICollectionViewController
@property (nonatomic, strong) LibraryDataController *dataController;
@end
我的问题出现在应用程序启动时,我将sqlite数据库中的信息加载到数据控制器中(init函数成功完成了此操作)。然后,我尝试将数据库分配给库视图。库视图是选项卡栏上的第二个视图,而选项卡栏控制器是根视图。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
UITabBarController *tabController = (UITabBarController *)self.window.rootViewController;
LibraryViewController *libraryView = [[tabController viewControllers] objectAtIndex:1];
LibraryDataController *aDataController = [[LibraryDataController alloc] init];
libraryView.dataController = aDataController;
return YES;
}
错误来自libraryView.dataController = aDataController;线。对我的问题有任何想法吗?我在想它可能与UICollectionView有关,因为我对此很陌生。这段代码几乎与我成功使用UITableView的代码相同,并且给我的印象是两个视图非常相似。谢谢你的帮助。
最佳答案
错误讯息
[UICollectionViewController setDataController:]: unrecognized selector sent to instance 0x71a5170
显示
libraryView
(这是选项卡栏控制器的第二个视图控制器)是UICollectionViewController
的实例,而不是您期望的LibraryViewController
实例。解决方案是将故事板文件中视图控制器的“自定义类”设置为“ LibraryViewController”(使用“身份检查器”)。