Ensure Correct Target Membership
Target membership refers to which target (e.g., app or framework) a file is part of. If your Swift and Objective-C files are in different targets, they won't be able to access each other. How to Fix: In Xcode, check the Target Membership for each file. Make sure both your Swift and Objective-C files are part of the same target.In the File Inspector (right panel in Xcode), ensure that the same checkbox is selected for the Target Membership for both files. Example: If you have a Swift file FieldCustomizer.swift and an Objective-C file ThemeManager.m, both should be part of the same target.
Import the Generated Swift Header
When you use Swift and Objective-C together, Xcode generates a special header file called YourModuleName-Swift.h. This file allows your Objective-C code to see and use Swift classes and methods.
In your Objective-C file, import this generated Swift header to access the Swift code. This import makes Swift classes and methods visible to your Objective-C code.
Expose Swift Methods with @objc and public
@objc makes a Swift method or class visible to Objective-C. Without it, Objective-C cannot call Swift methods. public makes the Swift method or class accessible outside its module (e.g., from Objective-C if it's in a different target). Use @objc to expose the Swift method to Objective-C. Use public to ensure that the method can be accessed from other modules (or targets). Without @objc and public, the Swift method would not be accessible from Objective-C.