2016-02-21 42 views
0

情況如下:我有兩個目標(A和B),它們包含一個名稱相同但實現不同的類(我們稱它們爲類Hello.m和Hello.h)。所以:兩個目標C文件在不同目標中具有相同名稱,由Swift類使用

目標A包含Hello.m和Hello.h
目標B包含Hello.m和Hello.h(不同的實現具有不同性質)

現在我有一個名爲Consumer.swift迅速類只在目標B中。這個類需要使用目標B的Hello.m和Hello.h。但Xcode試圖包含目標A的類/頭,導致以下錯誤: 類型'Hello'沒有會員'propertyOnlyAvailableInTargetB'

有沒有人知道我如何告訴swift類從正確的目標使用正確的類/頭?爲什麼Xcode喜歡使用目標A的Hello.m和Hello.h而不是B?

我試圖將Build Settings中的「Header Search Paths」設置爲項目中的特定文件夾,並將「Use Header Maps」設置爲false。設置該標誌出現錯誤後「無法導入橋接報頭......轉職Header.h」,因爲文件夾結構如下所示:

項目

    FolderA
      Hello.m
      Hello.h
      橋接-Header.h

    FolderB中
      Hello.m
      Hello.h
      Consumer.swift

任何答案,將不勝感激:) THX!

回答

1

你的文件系統結構和Xcode項目的層次結構應該是這樣的:

Project 
    |-- Bridging-Header.h 
    | 
    |-- FolderA 
    |  |-- Hello.h 
    |  |-- Hello.m 
    | 
    |-- FolderB 
      |-- Hello.h 
      |-- Hello.m 

當導入文件到橋接報頭,指定文件夾名稱:

#import "FolderB/Hello.h" 

如果您移動橋接標題,則需要更新項目設置以指向新路徑。打開構建設置,搜索「橋接」,然後更新路徑。

相關問題