为什么我的桥接方法不能被正确调用?

时间:2017-09-07 20:22:11

标签: javascript ios objective-c react-native

我正在为iOS创建一个从React NativeHomeKit的桥梁。我目前刚刚开始,只是尝试创建一个用于测试目的的Home。我已成功接受info.plist又名NSHomeKitUsageDescription中设置的HomeKit权限。

RNHomeKit.m

#import "RNHomeKit.h"
#import <HomeKit/HomeKit.h>
#import <React/RCTLog.h>

@implementation RNHomeKit

RCT_EXPORT_MODULE();

RCT_EXPORT_METHOD(createHome) {
  RCTLog(@"FAKELY CREATING HOME");
  HMHomeManager *myHomeManager = [[HMHomeManager alloc] init];

  [myHomeManager addHomeWithName: @"Matt's Awesome Home" completionHandler:^(HMHome *home, NSError *error) {
    RCTLog(@"REALLYING CREATING HOME");
    if (!error) {
      RCTLog(@"Created Home : %@",home.name);
    } else {
      RCTLog(@"Error: %@", error);
    }
  }];
}

@end

RNHomekit.h

#import <Foundation/Foundation.h>
#import <HomeKit/Homekit.h>
#import <React/RCTBridgeModule.h>

@interface RNHomeKit : NSObject <RCTBridgeModule>

@end

我正在使用createHome在我的主屏幕componentDidMount()上调用我的RNHomeKit.createHome();方法。正在记录FAKELY CREATING HOME,而REALLYING CREATING HOME从未见过。为什么我没有点击addHomeWithName

1 个答案:

答案 0 :(得分:0)

我尝试对Native HomeKit示例应用程序进行逆向工程,并进行了一些允许它工作的更改。关于为什么我的原始实现不起作用的解释会很棒!

RNHomeKit.h

Select 
convert(datetime,convert(char(19),'2017-08-21 12:52:23.063000000'))

Select 
convert(datetime,convert(char(19),'26/4/2016 00:00:00'),103)

RNHomeKit.m

#import <Foundation/Foundation.h>
#import <HomeKit/Homekit.h>
#import <React/RCTBridgeModule.h>

@interface RNHomeKit : NSObject <RCTBridgeModule, HMHomeManagerDelegate>

@property (strong, nonatomic) HMHomeManager *myHomeManager;

@end