How Should a Swift + Objective-C Project Be Setup for Unit Testing

Adding Swift Unit Tests to a Mixed Language Xcode Project

Answer provided by https://twitter.com/UINT_MIN

In my case the both targets (the application and the tests) had the same module name in the build settings. Changing the module name of the test target resolved the issue.

Call an Objective-C class from a Swift test file

You need to create bridging header and add Objective-C file in to that.
Create a bridging header YourProductName-Bridging-Header.h and then import HomeViewController in bridging header.

To import Objective-C code into Swift from the same target

In your Objective-C bridging header file, import every Objective-C
header you want to expose to Swift. For example:

#import "XYZCustomCell.h"
#import "XYZCustomView.h"
#import "XYZCustomViewController.h"

In Build Settings, in Swift Compiler - Code Generation, make sure the Objective-C Bridging Header
build setting under has a path to the bridging header file. The path
should be relative to your project, similar to the way your Info.plist
path is specified in Build Settings. In most cases, you should not
need to modify this setting.

Below are some resources which can help you

  1. Using Swift with Objective-C
  2. Answer to another stack overflow qustion
  3. How to use Objective-C in swift


Related Topics



Leave a reply



Submit