2017-05-26 49 views
0

我當前工作的項目有兩個Objective-C和Swift鏈接橋接頭並且一切正常。但是在Obj-c中這個特定的viewController.h已經被快速導入的情況下。當我嘗試訪問此viewController.h在另一個斯威夫特控制器,它說:「<#項目名稱#> - swift.h」找不到文件在swift中導入swift鏈接的objc類

指導我怎樣才能在迅速訪問此文件objC :(

編輯:詳細!!

我有,我已經通過進口來實現迅速的車型viewController.h文件「<#項目名稱#> - swift.h」

但是當我嘗試從SecondViewController.swift訪問這個viewController.h,我必須添加這個#import "viewController.h"添加到我的項目的橋接標題中。如果我這樣做,我收到此錯誤 「<#項目名稱#> - swift.h」未找到

+0

[如何在Swift中導入現有的Objective C類]可能的副本(https://stackoverflow.com/questions/24034409/how-to-import-existing-objective-c-classes-in-swift) –

+0

請檢查鏈接 - https://stackoverflow.com/questions/26096402/xcode-myprojectname-bridging-header-h-does-not-exist – Ved

+0

@ Ved ::已更新我的問題...我的問題不在橋接標題..但在重新使用objc中有橋接header.h導入的swift!已經 – Raghav7890

回答

1

如果我對你在做什麼的理解是正確的文件,問題在於projectname-Swift.h頭包含在一個標題(viewController.h)中,該標題又被導入到橋接報頭中。

https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html#//apple_ref/doc/uid/TP40014216-CH10-ID122的文檔討論瞭如何在.m文件中包含生成的*-Swift.h頭文件,而不是在頭文件中,這表明它不應該包含在頭文件中以避免循環依賴。您仍然可以將其包含在標題中,但如果標題包含在橋接標題中,則會中斷。

我會輸入*-Swift.hviewController.m,而不是viewController.h。如果您需要引用一個雨燕作爲屬性,參數或返回類型viewController.h,那麼你可以使用前置聲明,如

@class MySwiftModelClass; 

如果viewController.h聲明類擴展MySwiftModelClass,然後事情變得有點棘手。如果是這種情況,請張貼更具體的簡要示例。

+0

嘿!感謝你的回答。很多你有我在找什麼...是從蘋果文檔說導入橋接頭文件,以避免循環依賴..以避免循環依賴..是我的課在.h擴展迅速(我的頭文件有一些方法返回一個快速模型) – Raghav7890