首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么没有正确地调用我的桥接方法?

为什么没有正确地调用我的桥接方法?
EN

Stack Overflow用户
提问于 2017-09-07 20:22:10
回答 1查看 42关注 0票数 0

我正在创建一个从iOSReact Native for HomeKit的桥梁。我目前才刚刚开始,只是尝试为测试目的创建一个主页。我已经成功地接受了HomeKit的权限,就像在info.plist aka NSHomeKitUsageDescription中设置的那样。

RNHomeKit.m

代码语言:javascript
复制
#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

代码语言:javascript
复制
#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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-08 13:54:59

我尝试了反向工程一个本地HomeKit示例应用程序,并做了一些允许它工作的更改。但是,解释一下为什么我原来的实现不起作用是很棒的!

RNHomeKit.h

代码语言:javascript
复制
#import <Foundation/Foundation.h>
#import <HomeKit/Homekit.h>
#import <React/RCTBridgeModule.h>

@interface RNHomeKit : NSObject <RCTBridgeModule, HMHomeManagerDelegate>

@property (strong, nonatomic) HMHomeManager *myHomeManager;

@end

RNHomeKit.m

代码语言:javascript
复制
#import "RNHomeKit.h"
#import <HomeKit/HomeKit.h>
#import <React/RCTLog.h>

@implementation RNHomeKit

@synthesize myHomeManager;

RCT_EXPORT_MODULE();

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

  [self.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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46104524

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档