/ / 'Can not find interface declaration' w automatycznie generowanym nagłówku Bridging Swift - target-c, xcode, swift

"Nie można znaleźć deklaracji interfejsu" w automatycznie generowanym nagłówku pomostowym Swift - target-c, xcode, swift

Mój obecny projekt zawiera zarówno Swift, jak iKod celu C Oba typy plików źródłowych używają kodu z innego języka. Kiedy wykonuję pełne czyszczenie i przekompilowanie, otrzymuję błędy na prawie każdej deklaracji klasy Swift w Module-Swift.h, o formie:

Cannot find interface declaration for "UIViewController", superclass of "CustomViewController"

Moje symptomy są podobne do to pytanie, w podobnych okolicznościach do to pytanie. Innymi słowy:

  • Module-Bridging_Header.h importuje mój nagłówek Objective-C, Class.h
  • Plik implementacji Class.m importuje nagłówek Swift, Module-Swift.h

Jeśli podążę za podejściem do anonimów to pytanie, Mogę rozwiązać problem, dodając następujący plik i zaimportować go w miejsce Module-Swift.h:

//
//  Module-Swift-Fixed.h
//  Module
//

#ifndef Module_Swift_Fixed_h
#define Module_Swift_Fixed_h

#import <Foundation/Foundation.h>

#import <CoreData/CoreData.h>
#import <UIKit/UIKit.h>

#import "Module-Swift.h"

#endif /* Module_Swift_Fixed_h */

To wygląda na okropne włamanie. Czy brakuje mi jakiegoś właściwego sposobu na osiągnięcie tego w Xcode?

Odpowiedzi:

0 dla odpowiedzi № 1

W plikach Obj-C należy zaimportować moduł SWIFT (za pomocą #import "Module-Swift.h").

Zrób to tylko w plikach, w których będziesz używał typów zdefiniowanych w twoim module Swift.