2011-11-07 50 views
0

在我編寫的修改程序中遇到奇怪的問題。在我的第一次迭代中,視圖控制器有一個標題爲userSpecifyingInput的IBAction,並將所有按鈕連接到這個IBAction。爲了使設計更加複雜,我引入了userSpecifyingDigit和userSpecifyingLetter,並相應地將一些按鈕連接到第一個IBAction(userSpecifyingDigit),並且下一個按鈕連線到第二個IBAction(userSpecifyingLetter)。 在運行我的程序,它給了我這個錯誤:奇怪的XIB文件問題

終止應用程序:NSInvalidArgumentException 無法識別的選擇發送到實例

而且這些選擇都userSpecifyingInput和userSpecifyingDigit之間交替這沒有任何意義的userSpecifyingInput完全從取出我的ViewControllers接口和實現。

現在我不確定爲什麼userSpecifyingInput仍然存在,但在涉及發送的事件後,我注意到按鈕連接到新的選擇器以及舊的選擇器。 我必須手動從所有按鈕的touchupinside事件中刪除舊的選擇器。

當然,這似乎並不是一個非常方便的方法,但如果視圖控制器選擇器被修改,那麼觸摸事件應該被自動刪除。

我在這裏錯過了什麼嗎?這是一個相當不確定的開放式問題

回答

0

從您的實施中消除IBAction不會刪除IB中的任何先前鏈接。我還沒有聽說過任何XCode/IB首選項來解決這個問題。

+0

所以唯一的出路是手動消除接觸事件中的IBActions,以便與以前連接的界面元素? –

0

聽起來像xib仍然認爲它的一個對象被連接到UIViewController,但UIViewController上的函數不再存在。要在項目導航

  • 檢查和修復這個...

    1. 點擊XIB文件中選擇文件的所有者
    2. 點擊連接督察
    3. 驗證沒有這些連接是無效

    我也會在UIViewController中查看,以確保在這裏也不存在自動創建的引用。