Objective-C至C-传输数据

时间:2018-12-06 06:34:07

标签: c++ ios c objective-c

这是我的代码----

//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

0 个答案:

没有答案