2012-01-16 6 views
-1

ここにviewWillAppear関数があります。アプリケーションが表示中に戻るときに取得する

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:YES]; 
    self.tabBarController.tabBar.hidden = YES; 

    //creating object of childDataDB to fetch the data from childData table 
    ChildDataDB *objectChildDataDB = [[ChildDataDB alloc] autorelease]; 
    [objectChildDataDB connectToDatabase ]; 
    [objectChildDataDB checkAndCreateDatabase]; 
    [objectChildDataDB readChildDataTable]; 

    //array fetches the data from database with the help of ChildRecordDB class 

    self.fetchChildrenArray = [[[NSMutableArray alloc] init] autorelease]; 

    self.fetchChildrenArray = [objectChildDataDB returnNameMutableArray]; 
} 

私の問題は、最初のビューが読み込まれるときにうまく動作することです。しかし、他のビューに移動して戻ってくると、クラッシュします。

誰でも問題を解決できますか?

ありがとうございます。

+0

クラッシュからエラーメッセージを提供できますか? – jonkroll

+0

これはタイプミスかもしれませんが、 'ChildDataDB * objectChildDataDB = [[ChildDataDB alloc] autorelease];'は 'init'がないので間違っています。 –

+0

メソッドの最初の行は '[super viewWillAppear:animated];'でなければなりません。 –

答えて

1

この方法でやっていることは変です。 viewWillAppear:lifecycleメソッドからデータベースを作成するのは正しくないようです。

はまた....

ChildDataDB *objectChildDataDB = [[ChildDataDB alloc] autorelease]; 

はおそらくクラッシュレポートを与え、それはあなたを助けるために誰かのためのより多くの情報を提供することができる

ChildDataDB *objectChildDataDB = [[[ChildDataDB alloc] init] autorelease]; 

をお読みください。

関連する問題