如何在objective-c中调用没有引用的委托?

时间:2015-09-23 08:51:48

标签: ios objective-c

我正在使用第三方库,其结构如下。

@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”,即调用方法的类名。

感谢。

1 个答案:

答案 0 :(得分:1)

你自己就是一个班级方法,这就是为什么它不会起作用。在+声明的方法self内部指向te类而不是实例时。方法调用需要一个符合ZipArchiveDelegate的实例。