这是我的代码----
//Cpp/Objective-C Wrapper function
iSketchnoteController * isknController;
extern "C"
{
void launchiSketchnoteController(SlateTableViewController *viewController)
{
try
{
if (viewController == nil) {
isknController = new
iSketchnoteController([MyManager sharedManager].deviceName);
} else {
isknController = new iSketchnoteController(viewController);
}
} catch (Error &err)
{
NSLog(@"Error");
}
}
我想要的效果是让[MyManager sharedManager]
成为我的“静态应用程序状态”。意思是,我整个应用程序中的管理系统都可以用于设置设备名称,断开连接,重新连接等等……
此外,以上是一个.mm文件。
无论如何-这是我实施的方式。
#import <Foundation/Foundation.h>
#import <CoreBluetooth/CoreBluetooth.h>
NS_ASSUME_NONNULL_BEGIN
@class SelectSlateTableViewController;
@protocol MySwiftProtocol;
@interface MyManager : NSObject
+ (instancetype)sharedManager;
@property (nonatomic, assign) NSString *deviceName;
@end
NS_ASSUME_NONNULL_END
和.m文件
#import "MyManager.h"
extern void disconnect();
extern void connectToPeripheral(CBPeripheral* peripheral);
extern void connectToPeripheralByName(NSString* name);
extern void launchiSketchnoteController(SelectSlateTableViewController *viewController);
extern void isConnected();
@implementation MyManager
+ (instancetype)sharedManager {
static MyManager *sharedMyManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedMyManager = [[self alloc] init];
});
return sharedMyManager;
}
- (instancetype)init
{
self = [super init];
return self;
}
@end
基本,在第一个代码框中[MyManager sharedManager].deviceName
是 NOT 。