我正试图摆脱一直不断弹出的警告。
这是我的WordListTableViewController.m
的一部分#import "WordListTableViewController.h"
#import "XMLReader.h"
@implementation WordListTableViewController
- (void)viewDidLoad
{
[superviewDidLoad];
NSDictionary *status = [_mainDictionary retrieveForPath:@"Dealers"];
}
@end
XMLReader.h文件:
#import <Foundation/Foundation.h>
@interface XMLReader : NSObject <NSXMLParserDelegate]] >
{
NSMutableArray *dictionaryStack;
NSMutableString *textInProgress;
NSError **errorPointer;
}
+ (NSMutableDictionary *)dictionaryForPath:(NSString *)path error:(NSError **)errorPointer;
+ (NSMutableDictionary *)dictionaryForXMLData:(NSData *)data error:(NSError **)errorPointer;
+ (NSMutableDictionary *)dictionaryForXMLString:(NSString *)string error:(NSError **)errorPointer;
@end
@interface NSMutableDictionary (XMLReaderNavigation)
- (id)retrieveForPath:(NSString *)navPath;
@end
我得到的警告是:
警告:语义问题:'NSDictionary'可能无法响应'retrieveForPath:'
它确实响应得很好,但我无法弄清楚如何组织我的标题,以便编译器知道会响应什么...
真的很感激一些帮助:)
答案 0 :(得分:4)
嗯,您的类别NSMutableDictionary (XMLReaderNavigation)
已添加到NSMutableDictionary,而不是NSDictionary。实际上,在运行时, 方法存在于实际分配的对象上,因此可以成功调用它。但是从编译器的角度来看,NSDictionary实际上并没有响应 retrieveForPath 方法。
答案 1 :(得分:0)
答案非常简单,您提供的类别扩展了NSMutableDictionary,而您发送消息的对象是NSDictionary类的实例。
答案 2 :(得分:0)
只需要为您的WordListTableViewController.m
导入您的类别#import "NSMutableDictionary+XMLReaderNavigation.h";