I'm in the process of add some swift code that is all objective-c. I have trouble with my actual app so I have worked on a prototype. There is what I have done
- Created a new Xcode project, selecting App and Objc
- Added a blank Swift file and accepted the generation of the <appName>-Bridging-Header.
- In project build setting, Yes for Defines Modules, Yes for Always Embed Swift Libraries
- Add appropriate .h file to Bridging header
- In Build Settings, in Swift Compiler - General, Bridging Header has correct path to the bridging header file
- Setup the single swift file in this was using @objc like this:
@objcmembers class MySwiftClass: NSObject { func myMethod() { let output = ... } } When the project runs I execute in the objc ViewController: MySwiftClass *swiftObject = [[MySwiftClass alloc] init]; and get Use of undeclared identifier 'MySwiftClass'