swift - 创建一个 React-Native 桥接 iOS 类的实例
问题描述
我正在编写一个桥接和使用 Swift 类的反应本机应用程序,我有桥接工作,我可以在我创建的类上调用函数。我正在努力做到这一点,所以我必须在 react-js 中创建一个 swift 类的实例,但我不确定如何做到这一点。
这是我的代码示例:
迅捷类:
import Foundation
@objc(Torch)
class Torch: NSObject
{
@objc static func requiresMainQueueSetup() -> Bool {return true}
@objc var isOn = false
@objc func turnOn() {
isOn = true
}
@objc func turnOff() {
isOn = false
}
@objc func getTorchStatus(_ callback: RCTResponseSenderBlock) {
callback([NSNull(), isOn])
}
}
目标C类:
#import <Foundation/Foundation.h>
#import "React/RCTBridgeModule.h"
@interface RCT_EXTERN_MODULE(Torch,NSObject)
RCT_EXTERN_METHOD(requiresMainQueueSetup)
RCT_EXTERN_METHOD(turnOn)
RCT_EXTERN_METHOD(turnOff)
RCT_EXTERN_METHOD(getTorchStatus: (RCTResponseSenderBlock)callback)
@end
桥接头:
#import "React/RCTBridgeModule.h"
反应原生代码:
import {NativeModules} from 'react-native';
var Torch = NativeModules.Torch;
Torch.turnOn()
Torch.getTorchStatus((error, isOn) => {
console.log(isOn)
});
当我运行该应用程序时,它将手电筒的值设置为 true,然后通过获取其状态来打印它的值。
如果我再这样做
import {NativeModules} from 'react-native';
var Torch = NativeModules.Torch;
Torch.turnOn()
Torch.getTorchStatus((error, isOn) => {
console.log(isOn)
});
var NewTorch = NativeModules.Torch;
NewTorch.getTorchStatus((error, isOn) => {
console.log(isOn)
});
这将打印与以前相同的值,就像 NewTorch 与 Torch 是相同的实例。我想知道如何创建一个新的 Torch 实例,以便它有自己的状态而不是共享状态。或者,如果这是可能的,我需要创建一个类来快速管理实例。
对此的任何帮助都会很棒,谢谢。
解决方案
推荐阅读
- ios - 滚动崩溃后的 UICollection 视图“重新加载数据”
- python - 我们如何更新 Django REST 框架/Django 表单中所需的模型字段
- gradle - JavaFX,如何使用“import java.util.Random;”,“无法解析符号“java”。在 Gradle 下
- python - 尝试使用补丁来模拟 BlobServiceClient 但调用了真正的类
- c++ - C++ 中带有 cout 的指针
- google-sheets - 希望通过查询和导入范围功能从另一个谷歌工作表导入多行数据
- gsap - gsap3的填充属性问题没有发生颜色变化
- java - 从静态块我们无法访问 super() 或 this() 但在静态初始化块中我们如何访问构造函数?
- c# - .net core 使用 prometheus 监控 nats 请求
- python - PySimpleGui:如何删除列表框中的事件延迟?