我想設置一個自定義的委託協議,並得到一個奇怪的錯誤,我不明白。我不知道是否有人可以指出我在這裏做錯了什麼(我還是新的Ob-C和協議使用)...在協議中的自定義類定義的錯誤
情況是,我已經建立了自己的URLLoader類來管理加載並從互聯網上解析數據。我現在正在嘗試爲委託人設置一個協議,以便對URLLoader的事件作出響應。所以,下面是我的協議...
#import <UIKit/UIKit.h>
#import "URLLoader.h"
/**
* Protocol for delegates that will respond to a load.
*/
@protocol URLLoadResponder <NSObject>
- (void)loadDidComplete:(URLLoader *)loader;
- (void)loadDidFail:(URLLoader *)loader withError:(NSString *)error;
@end
不過,我發現了以下錯誤兩種方法簽名:
Expected ')' before 'URLLoader'
我覺得我必須忽視的東西小的和愚蠢的。任何幫助人可以提供將不勝感激!
哎呀......有人指出我應該包含URLLoader.h。那就是:
#import <Foundation/Foundation.h>
#import "URLLoadResponder.h"
/**
* URLLoader inferface.
*/
@interface URLLoader : NSObject {
NSString *name;
NSString *loadedData;
NSMutableData *responseData;
NSObject *delegate;
BOOL _isLoaded;
}
@property (nonatomic, retain) NSString *name;
@property (nonatomic, retain) NSString *loadedData;
@property (nonatomic, retain) NSObject *delegate;
- (void)loadFromURL:(NSString *)url;
- (void)addCompleteListener:(id)observer selector:(SEL)sel;
- (void)removeCompleteListener:(id)observer;
- (void)parseLoadedData:(NSString *)data;
- (void)complete;
- (void)close;
- (BOOL)isLoaded;
+ (NSURL *)makeUrlWithString:(NSString *)url;
+ (URLLoader *)initWithName:(NSString *)name;
@end
你是否有在URLLoader.h結束遺留下來的一些流浪的東西呢? – 2010-05-27 15:37:24
我們可以看到URLLoader.h嗎? – deanWombourne 2010-05-27 15:46:01
嗯......它似乎工作,如果我從URLLoader.h文件中刪除URLLoadResponder導入。但是 - 這不會讓我把URLLoader委託轉換爲NSObject。對象屬性是否允許通過協議定義進行轉換? –
bigmac
2010-05-27 16:03:44