[英]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(輸入)拖到控制器上以創建引用。
我犯了一個錯誤,因為我將引用拖到實現區域中,而不是拖到內部接口上。
當我意識到這一點時,我刪除了控制器中生成的代碼, 但沒有從對象中刪除引用!
要完全刪除參考,您應該使用輔助鼠標按鈕選擇對象,然后刪除對控制器無用的參考(出口)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.