我想设置一个自定义的委托协议,并得到一个奇怪的错误,我不明白。我不知道是否有人可以指出我在这里做错了什么(我还是新的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