[英]Why Isn't My Bridged Method Being Called Properly?
我正在為iOS
創建從iOS
到React Native
的HomeKit
。 我目前才剛剛起步,只是嘗試創建一個家庭用於測試目的。 我已經成功接受了info.plist
NSHomeKitUsageDescription中設置的NSHomeKitUsageDescription
。
#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
#import <Foundation/Foundation.h>
#import <HomeKit/Homekit.h>
#import <React/RCTBridgeModule.h>
@interface RNHomeKit : NSObject <RCTBridgeModule>
@end
我正在使用RNHomeKit.createHome();
在主屏幕的componentDidMount()
上調用我的createHome
方法RNHomeKit.createHome();
。 FAKELY CREATING HOME
正在被記錄,而REALLYING CREATING HOME
卻從未被看到。 為什么我沒有點擊addHomeWithName
?
我嘗試對Native HomeKit示例應用程序進行逆向工程,並進行了一些更改以使其能夠正常工作。 不過,對於為什么我的原始實現無法正常工作的解釋會很棒!
#import <Foundation/Foundation.h>
#import <HomeKit/Homekit.h>
#import <React/RCTBridgeModule.h>
@interface RNHomeKit : NSObject <RCTBridgeModule, HMHomeManagerDelegate>
@property (strong, nonatomic) HMHomeManager *myHomeManager;
@end
#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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.