如何将HMHome转换为React Native的javascript?
我目前正致力于桥接一些HomeKit函数以响应本机。我需要能够将我的如何将HMHome转换为React Native的javascript?,javascript,ios,objective-c,react-native,react-native-ios,Javascript,Ios,Objective C,React Native,React Native Ios,我目前正致力于桥接一些HomeKit函数以响应本机。我需要能够将我的HMHome对象数组转换为可解释的本地对象。我想我需要使用RCTConvert,但我有点慌乱 我正在订阅一个事件,用户的HMHomes已准备好返回,如HomeKitPage.js中所示 this.subscription = RNHomeKitEmitter.addListener( 'homesReady', (homes) => console.log(homes) ); MyRNHo
HMHome
对象数组转换为可解释的本地对象。我想我需要使用RCTConvert
,但我有点慌乱
我正在订阅一个事件,用户的HMHome
s已准备好返回,如HomeKitPage.js
中所示
this.subscription = RNHomeKitEmitter.addListener(
'homesReady',
(homes) => console.log(homes)
);
MyRNHomeKit.m
正在发出HomeReady
事件并返回家庭列表,如下所示
- (void)homeManagerDidUpdateHomes:(HMHomeManager *)myHomeManager {
RCTLog(@"HOMEMANAGERDIDUPDATEHOMES");
RCTLog(@"PRIMARY HOME: %@", self.myHomeManager.primaryHome);
RCTLog(@"MY LIST OF HOMES: %@", self.myHomeManager.homes);
[self sendEventWithName:@"homesReady" body:@{@"homes": self.myHomeManager.homes}];
}
RCTLog中我的家庭列表的输出为:
MY LIST OF HOMES: (
"[ name = Matt's Awesome Home, primary : Yes ]"
)
因此,JavaScript控制台从EventEmitter看到的输出是一个数组,其中索引是用户的家庭数量,每个对象都是null
(如预期的那样)
如何将其转换为JavaScript可用的JSON对象数组?这不是理想的方法,但它可以工作: RNHomeKit.m HomeKitPage.js
这不是一个理想的方法,但它是有效的: RNHomeKit.m HomeKitPage.js
for (HMHome *home in self.myHomeManager.homes) {
NSDictionary *homeObject = @{
@"name": home.name,
@"isPrimary": [NSNumber numberWithBool:home.primary]
};
[homesArray addObject: homeObject];
};
RCTLog(@"DA HOMES ARRAY: %@", homesArray);
[self sendEventWithName:@"homesReady" body:@{@"homes": homesArray}];
RNHomeKit.createHome();
this.subscription = RNHomeKitEmitter.addListener(
'homesReady',
(response) => this.setState({ homes: response.homes })
);
}