如何将HMHome转换为React Native的javascript?

如何将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

我目前正致力于桥接一些HomeKit函数以响应本机。我需要能够将我的
HMHome
对象数组转换为可解释的本地对象。我想我需要使用
RCTConvert
,但我有点慌乱

我正在订阅一个事件,用户的
HMHome
s已准备好返回,如
HomeKitPage.js
中所示

this.subscription = RNHomeKitEmitter.addListener(
      'homesReady',
      (homes) => console.log(homes)
    );
My
RNHomeKit.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 })
    );
  }