Saya ingin mulai menggunakan Swift dalam proyek Objective-C saya. Jadi saya menambahkan kelas swift:
import Foundation
@objc class System : NSObject {
@objc func printSome() {
println("Print line System");
}
}
Dan mengimpornya ke dalam file .m:
#import "MyProjectName-Swift.h"
Saat membangun proyek saya, saya mendapatkan kesalahan berikut:
Bridging header 'PathToMyProject/MyProjectName-Bridging-Header.h' does not exist
CATATAN: Di bawah "Build Settings-> Swift Compiler - Code Generation-> Objective-C Briding Header" diatur ke MyProjectName-Bridging-Header.h
Apa yang harus saya lakukan untuk mengatasi masalah ini?
Bantuan apa pun sangat dihargai.
EDIT: File Bridging-Header: #if ditentukan (__ has_include) && __has_include () # include #endif
#include <objc/NSObject.h>
#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>
#if defined(__has_include) && __has_include(<uchar.h>)
# include <uchar.h>
#elif __cplusplus < 201103L
typedef uint_least16_t char16_t;
typedef uint_least32_t char32_t;
#endif
#if !defined(SWIFT_PASTE)
# define SWIFT_PASTE_HELPER(x, y) x##y
# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)
#endif
#if !defined(SWIFT_METATYPE)
# define SWIFT_METATYPE(X) Class
#endif
#if defined(__has_attribute) && __has_attribute(objc_runtime_name)
# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
#else
# define SWIFT_RUNTIME_NAME(X)
#endif
#if !defined(SWIFT_CLASS_EXTRA)
# define SWIFT_CLASS_EXTRA
#endif
#if !defined(SWIFT_PROTOCOL_EXTRA)
# define SWIFT_PROTOCOL_EXTRA
#endif
#if !defined(SWIFT_CLASS)
# if defined(__has_attribute) && __has_attribute(objc_subclassing_restricted)
# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
# else
# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
# endif
#endif
#if !defined(SWIFT_PROTOCOL)
# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
#endif
#if !defined(SWIFT_EXTENSION)
# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
#endif
#if !defined(OBJC_DESIGNATED_INITIALIZER)
# if defined(__has_attribute) && __has_attribute(objc_designated_initializer)
# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
# else
# define OBJC_DESIGNATED_INITIALIZER
# endif
#endif
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
#if defined(__has_feature) && __has_feature(modules)
#endif
#pragma clang diagnostic pop
MyProjectName-Swift.h
danMyProjectName-Bridging-Header.h
bekerja dalam arah yang berlawanan.MyProjectName-Swift.h
disediakan secara otomatis.MyProjectName-Bridging-Header.h
, namun, disediakan secara semi-otomatis, yaitu Anda harus memastikannya ada. Jadi, apakah Anda yakin dapat melihatnyaMyProjectName-Bridging-Header.h
di navigator proyek Anda? Jika tidak, buat dan tambahkan file dengan nama itu ke proyek Anda. Kemudian periksa lagi bahwa jalan untuk itu dalam Pengaturan Build benar (itu harus mencakup direktori proyek Anda:MyProjectName/MyProjectName-Bridging-Header.h
.