我正在研究Objective C中幾年前完成的一個iOS項目。所以我必須對現有項目實現一些新功能,使用Swift來達到這個目的。Objective C,由於循環依賴導致的Swift互操作性問題
我添加了一個新雨燕類:
class CampView: UIView
{
// Code
}
我想在我現有的目標C類的一個來訪問這個類。所以我不喜歡:
@class CampView;
@interface NewCampViewController : UIViewController
@property (nonatomic, strong) IBOutletCollection(CampView) NSArray *campTypes;
@end
但是,當我將它連接到我的故事板,它與消息崩潰:
終止應用程序由於未捕獲的異常「NSUnknownKeyException」, 原因:「[setValue方法:forUndefinedKey:]: 這個類不是關鍵值,它們是關鍵的campTypes的編碼。
而且我可以在我的系統生成的斯威夫特頭文件不導入到這個特殊的班級,當我這樣做,它會引發如下錯誤:
「MyApp的-Swift.h」找不到文件
這就是爲什麼我在上面的代碼片段中使用了@class CampView;
。在調查時,我發現我的NewCampViewController.h
包含在Objective C橋接頭文件中。所以懷疑這是由於循環依賴,但我無法修復它。
任何人都可以幫我解決這個問題嗎?
異常看起來不像是什麼與Swift依賴關係 - 它看起來像一個簡單的IBOutlet問題。你確定你已經將你的故事板連接到一個IBOutletCollection而不是一個IBOutlet。 – Paulw11
@ Paulw11:我連接到IBOutletConnection。我確定。我嘗試刪除並再次添加 –