[英]Swift 'use of undeclared type'
我目前正在嘗試在swift中編寫一個小iOS應用程序,其中我有這些類: masterTableViewController
addViewController
和deleteViewController
,它們中的每一個都連接到一個,就像名字已經告訴的那樣,viewController。 masterTableViewController應該使用預定義的函數發送一些數據:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
if(segue.identifier == "showDetails") {
var selectedIndexPath:NSIndexPath = self.tableView.indexPathForSelectedRow()!
var deleteViewController:deleteViewController = segue!.destinationViewController as deleteViewController
deleteViewController.todoData = todoItems.objectAtIndex(selectedIndexPath.row) as NSDictionary
}
我想通過segue引用的控制器將當前行的數據發送到下一行。
這是我收到一條錯誤消息,指出deleteViewController不是可以分配給變量的類型。
但我真的不明白現在的問題是什么。 基本上這應該工作,因為我只想創建一個我的類類型的新對象,並將其傳遞給我的視圖控制器。
在參考中我從一切工作得到這個代碼很好。
您正在混合類名和實例變量名。 類名應為大寫:MasterTableViewController,AddViewController,DeleteViewController
首先,嘗試通過選擇不同的名稱來區分類名和實例變量名,即:
var dvc:deleteViewController = segue!.destinationViewController as deleteViewController
dvc.todoData = ...
看看它是否有效
另一種情況是你可能會神秘地使用“未聲明的類型”:類型(此處為DeleteViewController類)是在通過更改“實用工具”窗格的“名稱”文本框重命名的文件中定義的。 然后Xcode MIGHT不認為該文件是目標的成員,即使'Utilities'窗格的'Target Membership'部分中的復選框顯示該文件是項目目標的成員。 解決方法是取消選中並重新檢查使文件成為目標成員的復選框。 Xcode將重新索引項目文件,並希望現在將文件視為目標的成員。
我意識到你已經有了一個公認的答案,但我一直在追逐這個錯誤太久了,最后找到了我的問題的原因所以也許它會幫助別人保持理智。
我在嘗試集成Google admob sdk時遇到了這個問題。
以下是我調試的步驟:
顯然Xcode不喜歡框架搜索路徑中的連字符。
如果要編譯的類包含在單元測試模塊中,但未定義的類不包含,則會發生這種情況。
您會發現應用程序編譯並運行,但編譯錯誤可能會顯示在源代碼中。
打開右側欄並檢查目標成員資格設置。 它們應該對兩個類都一致。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.