2011-07-22 14 views
0

私のアプリケーションは、マルチタスキングをサポートしていない状態で正常に動作します。 しかし、私はinfo.plistでそれをアクティブにすると、navControllerに何かを押してホームボタンを押すたびにクラッシュし、アプリケーションに戻り、再びnavigationControllerを使用しました。 エラーメッセージは私にも役に立ちません。アプリの切り替えが高速ですが、何が必要ですか?

アプリでマルチタスクのサポートをするには何が必要なのですか?アプリがバックグラウンドで何もしないようにしたいときに戻ってくるだけです。

悲しい機器が正しく動作しないのいずれかのXcode 4.1以降-_-」

コンソールにエラーメッセージが時々ある:たまに

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[CAContextImpl _isCached]: unrecognized selector sent to instance 0x5b783d0' 

ことですEXC_BAD _... ???ホームボタンを前にクリックした場合のみ 私はビューをプッシュしてから戻ることができますホーム - Buttomをクリックして、App-Symbolをタップしてから、同じビューが再びクラッシュします。 しかし、私がビューをプッシュすると、戻ってビューをプッシュしますrks。それは私がSpringBoard(ホームボタンをクリック)に入ったときにだけクラッシュします。

編集:

//AppDelegate class 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  

    [window makeKeyAndVisible]; 
    [self loadHauptmenu]; 

    return YES; 
} 

- (void) loadHauptmenu { 
    NSLog(@"loading Hauptmenu"); 
    navigationController = [[UINavigationController alloc] init]; 

    HauptMenuViewController *hauptMenuController = [[HauptMenuViewController alloc] init]; 
    [navigationController pushViewController:hauptMenuController animated:NO]; 
// [hauptMenuController release]; //tried this as error, but wasn't it 

    [window addSubview:navigationController.view]; 
} 



//Main Menu class 

- (void) pushNewViewController:(UIViewController*)pushMe { 
    NSLog(@"Der aktuelle navigationController ist: %@", self.navigationController); 

    [self.navigationController pushViewController:pushMe animated:YES]; 
} 

- (void) pushNewViewWithClassname:(NSString*)classname { 
    UIViewController *viewControllerToPush = [[NSClassFromString(classname) alloc] init]; 
    [self pushNewViewController:viewControllerToPush]; 
    [viewControllerToPush release]; 
} 


- (IBAction) pushEinstellungen:(id)sender { 
    [self pushNewViewWithClassname:@"EinstellungenViewController"]; 
} 


//view class, which gets pushed 

- (id) init { 
    self = [super init]; 
    if (self != nil) { 
     self.title = @"Einstellungen"; 
     //self.view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 416)]; 
     self.view.backgroundColor = MEDILEARN_COLOR; 

     self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 416) style:UITableViewStyleGrouped]; 
     self.tableView.delegate = self; 
     self.tableView.dataSource = self; 
     self.tableView.allowsSelection = NO; 
     self.tableView.backgroundColor = [UIColor clearColor]; 
     [self.view addSubview:self.tableView]; 

     self.fragenSwitch = [[UISwitch alloc] initWithFrame:CGRectMake(194, 8, 94, 28)]; //here is an EXC_BAD_... 
     [self.fragenSwitch addTarget:self action:@selector(toggleEnabledForFragenSwitch:) forControlEvents:UIControlEventValueChanged]; 
     [self.fragenSwitch setOn:[[NSUserDefaults standardUserDefaults] boolForKey:@"randFragen"] animated:NO]; 

     self.antwortenSwitch = [[UISwitch alloc] initWithFrame:CGRectMake(194, 8, 94, 28)]; 
     [self.antwortenSwitch addTarget:self action:@selector(toggleEnabledForAntwortenSwitch:) forControlEvents:UIControlEventValueChanged]; 
     [self.antwortenSwitch setOn:[[NSUserDefaults standardUserDefaults] boolForKey:@"randAntworten"] animated:NO]; 
    } 
    return self; 
} 
+1

何もする必要はありません。マルチタスクをより効果的に活用するにはできることがありますが、すぐに使用できるiOSは、切り替えたときの状態にアプリを復元する必要があります。 – Jason

答えて

2

あなたの説明から、マルチタスクが問題であることは表示されません。これはあなたのアプリがバグを持っているように読んでいます。それを追跡して修正するようにしてください。

デフォルトでは、アプリはバックグラウンドで何もしません。

+1

どうすればよいですか?私はいつも、_isCachedのようなセレクタが見つからないというエラーを受け取ります。しかし、毎回彼が望むセレクターと同じではありません。 (多くの場合、navigationBarのdrawBackButtonBackgroundInRect:...と関係しています) – Binarian

+1

@Virus:私は見ることができないコードをデバッグすることはできません。 – PengOne

+0

コードを追加しました。あなたがアイデアを持っていれば本当に涼しいでしょう。なぜなら、私がホーム画面にいたときに、このエラーが何であるかという手がかりがないからです。 – Binarian

関連する問題