簡體   English   中英

IOS教程異常(待辦事項示例)

[英]IOS Tutorial Exception (ToDo Sample)

我使用XCode 5.0.2遵循了此IOS教程 ,並遇到了一個障礙:(

我已經實現了“將項目添加到待辦事項”列表中的部分,這是問題開始的地方。

這是在我的AddToDoItemViewController中,發生在我選擇完成時:

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if(sender != self.doneButton)
    {
        return;
    }

    if(self.textField.text.length > 0)
    {
        self.todoItem = [[ToDoItem alloc] init];
        self.todoItem.itemName = self.textField.text;
        self.todoItem.completed = NO;
    }

}

完成此操作后,我將收到以下方法的調用,該方法假定是將Item添加到ToDoListViewController中的Mutable Array中:

- (IBAction) unwindToList:(UIStoryboardSegue *)segue
{
    AddToDoItemViewController *source = [segue sourceViewController];
    ToDoItem *item = source.todoItem;
    if(item != nil)
    {
        [self.toDoItems addObject:item];
        [self.tableView reloadData];
    }
}

我注意到的是,如果我未在“文本字段”中鍵入任何內容,只是單擊“從列表添加”,然后單擊“取消”或“完成”,則沒有例外,並且視圖從“添加到待辦事項”切換回“列表視圖”。 但是,如果我在textField中鍵入任何內容並選擇cancel或done,則會引發異常。

2014-01-26 22:28:15.301 ToDoList[2537:a0b] -[AddToDoItemViewController textField:]: unrecognized selector sent to instance 0x89c4b60
2014-01-26 22:28:15.310 ToDoList[2537:a0b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[AddToDoItemViewController textField:]: unrecognized selector sent to instance 0x89c4b60'

一些指導將不勝感激,所以我可以使這項工作。 謝謝!

編輯:

經過數小時的尋找並試圖理解異常發生的原因,我終於找到了原因。

我去情節提要,然后右鍵單擊文本字段。 我發現其中一個“發送事件”已鏈接到一種方法(具體編輯“ Did End”)。 不知道如何創建此鏈接,但我刪除了該鏈接。 我看到的唯一鏈接是在“引用出口”下,該鏈接指向AddToDoItemViewController.m中的textField。 一旦我再次嘗試,它就起作用了。 感謝所有提出建議的人。

簡介:將UIObject與Controller鏈接是一個問題。

也許我來晚了,但這對其他人會有所幫助,因為我花了最多2個小時才意識到自己是初學者。

我將textField(輸入)拖到控制器上以創建引用。

我犯了一個錯誤,因為我將引用拖到實現區域中,而不是拖到內部接口上。

當我意識到這一點時,我刪除了控制器中生成的代碼, 但沒有從對象中刪除引用!

要完全刪除參考,您應該使用輔助鼠標按鈕選擇對象,然后刪除對控制器無用的參考(出口)。

您忘了連接xib中的文本字段

請關注此鏈接中以下指定的部分

將文本字段連接到視圖控制器

暫無
暫無

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

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