【发布时间】:2013-05-29 11:31:06
【问题描述】:
我想在类方法中调用一个委托。
下面的例子显然行不通,因为委托是在类方法中访问的实例变量。 (错误:在类方法中访问了实例变量 'delegate')
有alertnative吗?
我的头文件:
// MyClass.h
#import <Foundation/Foundation.h>
@protocol MyDelegate <NSObject>
-(void)update;
@end
@interface MyClass : NSObject
{
id<MyDelegate> delegate;
}
@property (nonatomic, retain) id delegate;
+(void)methodThatInvokesDelegate;
@end
我的实现文件:
// MyClass.m
#import "MyClass.h"
@implementation MyClass
@synthesize delegate;
+(void)methodThatInvokesDelegate{
[delegate update];
}
@end
【问题讨论】:
-
您缺少协议前面的“@”。您遇到的具体问题是什么?
-
@MikeM 以上只是一个例子。不是我实际使用的代码。但只是为了说明问题。我编辑了我的帖子并添加了“@”。错误i':“在类方法中访问的实例变量'delegate'
-
为什么要这样做?也许你最好使用单例模式?
-
如果你想向一个类发送一个简单的“更新”,使用 NSNotificationCenter stackoverflow.com/questions/16409448/… 可能就足够了。否则我会建议将方法设置为非静态或使用像@Marcel 所说的单例
-
我想在类方法中触发一个事件。然后这个事件被另一个类订阅。
标签: iphone ios objective-c