我无法从我构建的静态库中创建委托。如果我在单独的项目中,它可以正常工作。你能查一下我的代码:
StaticSdk.h
@protocol SdkDelegate;
@interface Sdk : NSObject
@property (nonatomic, weak) id <SdkDelegate> delegate;
+(void)startAction
-(void)taskComplete;
@end
@protocol SdkDelegate <NSObject>
-(void)taskGetDataCompleted:(NSMutableData*)pushedData;
@end
StaticSdk.m
+(void)startAction{
SdkDelegate *sdk = [[SdkDelegate alloc] init];
[sdk.delegate taskGetDataCompleted:dataMy];
}
我将这个静态库包含到我的项目中,并且我指定的委托没有被执行。
项目代码
ViewController.h
@interface ViewController : UIViewController <SdkDelegate>
-(IBAction) Connect: (id) sender;
@end
ViewController.m
- (void)taskGetDataCompleted:(NSMutableData*)pushedData
{
[imageView setImage:[[UIImage alloc] initWithData:pushedData]];
}
答案 0 :(得分:0)
我猜你没有编译:
JButton#setFocusPainted
这里的问题是您无法实例化协议。相反,你有一个类采用该协议,看起来你使用SdkDelegate *sdk = [[SdkDelegate alloc] init];
正确。您现在需要做的是将ViewController
的实例分配到ViewController
实例的delegate
属性,然后再拨打Sdk
。