如何在 objective c 中的 class 方法之间共享实例变量

how to share instance variable between class methods in objective c

所以我正在构建一个 flutter 原生插件。我有两种方法(在 xyzPlugin.m 中)看起来像这样

+ (void)registerWithRegistrar:(nonnull NSObject<FlutterPluginRegistrar> *)registrar {

- (void)handleMethodCall:(FlutterMethodCall *)call result:(FlutterResult)result {

现在,我想在它们之间共享实例变量。

假设。我在 registerWithRegistrar

中像这样初始化 meetingView
 MeetingView *meetingView = [MeetingView new];

如何在 handleMethodCall 中使用相同的内容?

我尝试了什么?

@implementation xyzPlugin {
    MeetingView *_view;
}

然后在

- (void)handleMethodCall:(FlutterMethodCall *)call result:(FlutterResult)result {
    _view = [MeetingView new];

但这会产生以下错误

Instance variable '_view' accessed in class method

也许您需要一个全局变量,这样您就可以使用 static 关键字声明您的对象,例如:

static MeetingView *_meetingView = ...

然后您可以在 Objective-C.

中的 class 方法之间访问此对象
+ (instancetype)shared{
    static id obj;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        obj = [self new];
    });
    return obj;
}
// [MeetingView shared]...