从静态库iOS委派

时间:2015-05-27 20:56:59

标签: ios objective-c xcode

我无法从我构建的静态库中创建委托。如果我在单独的项目中,它可以正常工作。你能查一下我的代码:

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]];
}

1 个答案:

答案 0 :(得分:0)

我猜你没有编译:

JButton#setFocusPainted

这里的问题是您无法实例化协议。相反,你有一个类采用该协议,看起来你使用SdkDelegate *sdk = [[SdkDelegate alloc] init]; 正确。您现在需要做的是将ViewController的实例分配到ViewController实例的delegate属性,然后再拨打Sdk