2010-02-15 81 views
0

我有一些代码从URL中获取XML文件,然后使用NSXMLParser对其进行分析。目前这段代码包含在调用它的viewController中。为了可重用性,我希望将解析代码移到外部类,并从viewController中调用它。如何从目标C中的导入类调用方法?

我试图做到这一点,如下所示:

创建一个空白NSObject类文件,把解析的代码到h和.m文件,然后在我的viewController.m文件中使用的#import语句和@Class声明在viewController.h文件中,所以我可以从viewController类中调用方法。

我不知道如何继续或我是否以错误的方式接近,请告知。


我实例化外部类,在我的viewController

XMLParser *xmlParser; 

在viewDidLoad中的@interface下面一行对我的viewController类我打电话我已经写在XMLParser.m的方法。

[xmlParser fetchXML]; 

的问题是,当我编译,我得到以下警告:

'XMLParser' may not respond to '-fetchXML' 

当在运行时的观点负荷的方法不调用,也就是所谓的按照如下进行通话但不运行

+1

将代码放置在类方法(以+开头)还是实例方法(以 - 开头)?你怎么称呼这个方法?编译时会发生什么,运行时会发生什么? – andyvn22 2010-02-15 23:54:15

+1

听起来像一切都是正确的。有什么问题? – 2010-02-16 00:01:09

+0

@Rob Napier @ andyvn22 查看更新的问题,谢谢guys – conorgriffin 2010-02-16 00:10:02

回答

3

,你应该有一个名为XMLParser.h文件,其中包括像:

@interface XMLParser : NSObject 
{ 
    ... 
} 
- (void)fetchXML; 

然后在viewController.m,应该有:

#import "XMLParser.h" 

我会怀疑你错过了这些步骤之一。

+0

感谢@Rob Napier,没有编译错误,我错过了 - - (void)fetchXML;' 但是,我的方法似乎仍然没有被调用运行。如果有帮助,我可以发布更多的代码 – conorgriffin 2010-02-16 00:25:27

+0

如果你的方法没有被调用,最常见的原因是你的指针是xmlParser是零。向nil发送消息不会产生错误,但它什么也不做。 – 2010-02-16 14:10:49