0
在我.h文件中關於我有這樣的:在IOS5,使用ARC同時創造我自己的委託,錯誤使用_weak
@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結果返回數據。
UPDATE:
這裏是我的整個.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
您是否已經在其他地方定義了代表,在超類中說過? – atticus 2012-04-12 02:29:35
@atticus - 我的印象是該協議正在定義委託。上面的.h和.m文件是針對同一個類的,因爲我指的是屬性中的協議,並嘗試將其合成,然後出現錯誤。 – 2012-04-12 09:25:15
聽起來這個錯誤意味着一個伊娃被創建爲__strong,並且聲明屬性爲「弱」是有問題的。你介意發佈整個.h文件嗎? – atticus 2012-04-12 12:14:48