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 № 1W 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.