0

sqlite データベースからデータを取得する LibraryDataController クラスをセットアップしました。これはその .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 関数はこれを正常に実行します)。次に、データベースをライブラリ ビューに割り当てようとします。ライブラリ ビューはタブ バーの 2 番目のビューであり、タブ バー コントローラーはルート ビューです。

- (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に非常に慣れていないので、UICollectionViewに関係している可能性があると考えています。このコードは、私が UITableView で正常に使用したコードとほぼ同じであり、2 つのビューが非常に似ているという印象を受けました。ご協力いただきありがとうございます。

4

1 に答える 1

1

エラーメッセージ

[UICollectionViewController setDataController:]: unrecognized selector sent to instance 0x71a5170

は、libraryView(タブバーコントローラーの2番目のビューコントローラー)がのインスタンスであり、予想どおりUICollectionViewControllerではないことを示しLibraryViewControllerています。

解決策は、ストーリーボードファイル内のビューコントローラーの「カスタムクラス」を「LibraryViewController」に設定することです(「IDインスペクター」を使用)。

于 2012-12-07T10:21:08.490 に答える