header 包括在 Swift 项目中使用 C++ 文件时的错误
header including error when using C++ file in Swift project
我在swift项目中使用C++文件,但是在swift项目中,我们不能直接使用C++文件,应该使用objective-c文件。
所以我创建了 IFCEngineLib.h 和 IFCEngineLib.m 文件以使用 IFCFileParser.h 和 IFCFileParser.cpp。
在 IFCEngineLib.mm 中,我包含 IFCFileParser.h 文件如下:
#import "IFCEngineLib.h"
#include "IFCFileParser.h"
CIFCFileParser *g_pModel = NULL;
@implementation IFCEngineLib
....
@end
但是当我构建项目时,出现以下错误:
Cannot find protocol declaration for 'PKPushRegistryDelegate'
我在 AppDelegate.swift 中使用了 PKPushRegistryDelegate,并在其中导入了 PushKit,如下所示:
//
// AppDelegate.swift
//
import UIKit
import CoreData
import UserNotifications
import PushKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, PKPushRegistryDelegate {
...
}
我该如何解决这个错误?谁能帮帮我?
我找到了解决这个问题的方法。
我必须在 IFCEngineLib.m 中的应用程序中导入 objective-C 库 的所有头文件。
我在应用程序中使用了 PushKit,所以我必须在 IFCEngineLib.m 中导入 <PushKit/PushKit.h>
。
所以 IFCEngineLib.m 文件如下所示:
#import "IFCEngineLib.h"
#import <PushKit/PushKit.h>
#include "IFCFileParser.h"
CIFCFileParser *g_pModel = NULL;
@implementation IFCEngineLib
....
@end
如果您使用音频播放器,则必须导入 #import <AVFoundation/AVAudioPlayer.h>
。就这些了。
我在swift项目中使用C++文件,但是在swift项目中,我们不能直接使用C++文件,应该使用objective-c文件。 所以我创建了 IFCEngineLib.h 和 IFCEngineLib.m 文件以使用 IFCFileParser.h 和 IFCFileParser.cpp。 在 IFCEngineLib.mm 中,我包含 IFCFileParser.h 文件如下:
#import "IFCEngineLib.h"
#include "IFCFileParser.h"
CIFCFileParser *g_pModel = NULL;
@implementation IFCEngineLib
....
@end
但是当我构建项目时,出现以下错误:
Cannot find protocol declaration for 'PKPushRegistryDelegate'
我在 AppDelegate.swift 中使用了 PKPushRegistryDelegate,并在其中导入了 PushKit,如下所示:
//
// AppDelegate.swift
//
import UIKit
import CoreData
import UserNotifications
import PushKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, PKPushRegistryDelegate {
...
}
我该如何解决这个错误?谁能帮帮我?
我找到了解决这个问题的方法。
我必须在 IFCEngineLib.m 中的应用程序中导入 objective-C 库 的所有头文件。
我在应用程序中使用了 PushKit,所以我必须在 IFCEngineLib.m 中导入 <PushKit/PushKit.h>
。
所以 IFCEngineLib.m 文件如下所示:
#import "IFCEngineLib.h"
#import <PushKit/PushKit.h>
#include "IFCFileParser.h"
CIFCFileParser *g_pModel = NULL;
@implementation IFCEngineLib
....
@end
如果您使用音频播放器,则必须导入 #import <AVFoundation/AVAudioPlayer.h>
。就这些了。