我正在使用第三方库,其结构如下。
@protocol ZipArchiveDelegate;
@interface Main: NSObject
//All static methods are declared here
+ (BOOL)unzipFileAtPath:(NSString *)path
toDestination:(NSString *)destination
delegate:(id<ZipArchiveDelegate>) delegate;
//There is no reference of this delegate, while it is calling delegate methods in .m class
@end
@protocol ZipArchiveDelegate <NSObject>
@optional
- (void)someWorkEnded;
@end
现在,当我需要调用此方法时,我在UIViewController Subcalss中调用它。当我将委托作为self传递时,它会发出警告“不兼容的指针类型将类发送到id<ZipArchiveDelegate>
类型的参数”
[Main unzipFileAtPath:zipLocalPath toDestination:toDestination delegate:self];
我如何调用它,因为没有静态方法,所以我使用“Main”,即调用方法的类名。
感谢。
答案 0 :(得分:1)
你自己就是一个班级方法,这就是为什么它不会起作用。在+
声明的方法self
内部指向te类而不是实例时。方法调用需要一个符合ZipArchiveDelegate的实例。