簡體   English   中英

NSInvalidArgumentException

[英]NSInvalidArgumentException

我添加了:(id)發件人后,我從這個例程中崩潰,所以我可以確定哪個按鈕調用它。 當設置為普通的舊toggleView3時,它可以很好地工作。 當detailView切換回docView時發生崩潰。

'NSInvalidArgumentException', reason: '*** -[RootViewController toggleView3]: unrecognized selector sent to instance 0x524a00' 2009-04-07 12:29:44.421 eTarot[11405:20b] Stack:

-(IBAction)toggleView3:(id)sender{


    if (detailViewController == nil) {
        [self loadDetailViewController];
    }

    UIView *docView = docViewController.view;
    UIView *detailView = detailViewController.view;

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:1];
    [UIView setAnimationTransition:([docView superview] ? UIViewAnimationTransitionFlipFromRight : UIViewAnimationTransitionFlipFromLeft) forView:self.view cache:YES];

    if ([docView superview] != nil) {
        [detailViewController viewWillAppear:YES];
        [docViewController viewWillDisappear:YES];
        [docView removeFromSuperview];

        [self.view addSubview:detailView];
        [self.view insertSubview:detailNavigationBar aboveSubview:detailView];
        [docViewController viewDidDisappear:YES];
        [detailViewController viewDidAppear:YES];

    } else {
        [docViewController viewWillAppear:YES];
        [detailViewController viewWillDisappear:YES];
        [detailView removeFromSuperview];
        [detailNavigationBar removeFromSuperview];
        [self.view addSubview:docView];
        [detailViewController viewDidDisappear:YES];
        [docViewController viewDidAppear:YES];
    }
    [UIView commitAnimations];
}

當選擇器的正確名稱為toggleView3時,您正在向視圖發送消息toggleView3 toggleView3: - 即使用冒號和參數。 它們可能與您相似,但它們與Objective-C完全不同。

該異常意味着您的應用程序在某處調用toggleView3而沒有:sender參數。 由於您的新方法需要參數,因此它與調用從未存在過的方法相同。

如果你仔細查看調試器中的堆棧跟蹤,它應該非常清楚它來自何處。 構建結果中也可能出現警告。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM