0

在我的 .h 文件中,我有这个:

@protocol ScanBookDelegate
- (void)MethodNameToCallBack:(NSArray *)s;
@end

@property (nonatomic, weak) id  <ScanBookDelegate> delegate; 

在我的 .m 文件中,我有:

@synthesize delegate;

我收到此错误:

Existing ivar 'delegate' for __weak property 'delegate' must be __weak

如何解决此错误?

NSArray *当我从 JSON 结果返回数据时,我正在返回一个。

更新:

这是我的整个 .h 文件-

#import <UIKit/UIKit.h>

@protocol ScanBookDelegate
- (void)MethodNameToCallBack:(NSArray *)s;
@end

@interface jabBookScan : NSObject
<NSURLConnectionDelegate, NSURLConnectionDataDelegate>
{
    NSURLConnection *internalConnection;
    NSMutableData *container;
    id <ScanBookDelegate> delegate;
}
- (id)initWithRequest:(NSURLRequest *)req;
- (void)start;
- (NSMutableData *) lookupBook:(NSString *) isbn;
- (void)fetchedData:(NSData *)responseData;
@property (nonatomic, copy) NSURLRequest *request;
@property (nonatomic, copy) void (^completionBlock)(id obj, NSError *err);
@property (nonatomic, strong) NSDictionary *jsonRootObject;
@property NSMutableData *responseData;
@property NSURL *myURL;
@property (nonatomic, weak) id  <ScanBookDelegate> delegate; 
@end
4

1 回答 1

2

摆脱id <ScanBookDelegate> delegate;您的 {}(在顶部),它应该可以工作。使用属性时无需指定。如果你真的想要,那么你可以声明 ivar __weak 使其匹配你的属性(默认情况下 ivar 是强的)。

于 2012-04-12T21:06:44.713 回答