Ios 如何在目标c中从类方法调用委托方法?

Ios 如何在目标c中从类方法调用委托方法?,ios,objective-c,delegates,Ios,Objective C,Delegates,我想从类方法调用委托方法 我的演示代码 ClassA.h @interface ClassA: NSObject<MyProtocol> + (void)demoMethod; @property (nonatomic, weak) id<MyProtocol> delegate; 上述代码中的错误为: “struct objc_class”中没有名为“delegate”的成员 成员引用类型“struct objc_class*”是指针;是吗 是否要使用“->”

我想从类方法调用委托方法

我的演示代码

ClassA.h

@interface ClassA: NSObject<MyProtocol>

+ (void)demoMethod;
@property (nonatomic, weak) id<MyProtocol> delegate;
上述代码中的错误为:

  • “struct objc_class”中没有名为“delegate”的成员
  • 成员引用类型“struct objc_class*”是指针;是吗 是否要使用“->”
请帮助我从类方法调用委托方法


谢谢

无法从静态(类)函数访问实例属性

在您的示例方法中,
self
不是指
ClassA
的实例,而是指
ClassA
本身

这种行为没有普遍的解决办法;根据您的需要,它们都是一种变通方法:

  • 保持对实例的静态引用(某种程度上是单例方法)
  • 不要使
    demoMethod
    成为静态函数
  • 将当前/最新委托保留在静态属性中并使用

如果您想从类访问它,那么
委托
应该是类变量:

@interface ClassA: NSObject<MyProtocol>

+ (void)demoMethod;
@property (nonatomic, weak, class) id<MyProtocol> delegate;
@接口类A:NSObject
+(无效)方法;
@属性(非原子、弱、类)id委托;
@interface ClassA: NSObject<MyProtocol>

+ (void)demoMethod;
@property (nonatomic, weak, class) id<MyProtocol> delegate;