Alexey K
Alexey K

Reputation: 6723

Import of ProjectName-Swift.h and Bridging-Header.h recursion

I have a project with large amount of obj-c and swift code inside it.

I have an obj-c class which imports ProjectName-Swift.h to let that class access swift code.

Now I need to expose that obj-c class to the swift so I can access it from swift code.

The problem is that after import in bridging header name of obj-c class project stops building with error that it cannot find ProjectName-Swift.h which import is stated in obj-c class.

I cannot remove import of ProjectName-Swift.h from obj-c class because after that class breaks.

What can I do ?

Upvotes: 1

Views: 1191

Answers (1)

cbiggin
cbiggin

Reputation: 2142

OK, had one answer and then re-read the question. Make absolutely certain that your import of the swift header is the Module Name of the project (not necessarily the project name):

Apple Documentation: Swift and Objective-C in the Same Project

More specifically, go to the section marked "Importing Swift into Objective-C" and read it. And even more specifically:

  1. Under Build Settings, in Packaging, make sure the Defines Module setting for that framework target is set to “Yes”.

  2. Import the Swift code from that framework target into any Objective-C .m file within that framework target using this syntax and substituting the appropriate names:

    #import <ProductName/ProductModuleName-Swift.h>

Upvotes: 1

Related Questions