2013-02-14 1 views
0

나는이 파일이 선언'NSXMLParser'에 대한 가시적 @interface는 선택 parseXML

XMLParser.h

#import <Foundation/Foundation.h> 

@interface XMLParser : NSObject <NSXMLParserDelegate> 
{ 

    NSXMLParser *parser; 

} 

-(id)initWitData:(NSData *)data; 
-(void)parseXML; 


@end 

XMLParser.m (의 일부)를

#import "XMLParser.h" 
@implementation XMLParser 

- (id)initWitData:(NSData *)data 
{ 
    if (self = [super init]) { 

    parser = [[NSXMLParser alloc] initWithData:data]; 

    [parser setDelegate:self]; 
} 
return self; 
} 


- (void)parseXML{ 

[parser parse]; 

}; 

의 ViewController .h

#import <UIKit/UIKit.h> 
#import "XMLParser.h" 

@interface ViewController : UIViewController <CLLocationManagerDelegate> 
{ 

    NSXMLParser *xmlToString; 
} 


@end 

와 ViewController.m

#import "ViewController.h" 

@interface ViewController() 

@end 

@implementation ViewController 

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
NSString *xmlFilePath = [[NSBundle mainBundle] pathForResource:@"world" ofType:@"xml"]; 

NSData *data = [[NSData alloc]initWithContentsOfFile:xmlFilePath]; 
xmlToString = [[NSXMLParser alloc]initWithData:data]; 
//[xmlToString setDelegate:self]; 
[xmlToString setShouldResolveExternalEntities:YES]; 
[xmlToString parseXML]; // I am getting the error here. 

}

아무도 도와 줄 수

? 나는 다른 프로젝트와 그 일을 거의 동일하게했다 !!! 유일한 차이점은 initWithData입니다.

답변

2

NSXMLParser을 작성한 후 XMLParser에서 메소드를 호출하려고합니다. 당신은 당신이 당신의 기본 NSXMLParser 개체를 노출해야 할 수도 있으므로, XMLParser*xmlToString를 선언하고 물론

xmlToString = [[XMLParser alloc] initWithData:data]; 

-setShouldResolveExternalEntities:에 전화 후 실패합니다 말을 의미하지 않았다 당신이 확신합니다.

+0

나는 parseXML 함수를 만들었습니다. 내가 말한 것을 시도했지만 xmlToString = [[XMLParser alloc] initWithData : data]에 대해 거의 동일한 오류가 발생합니다. – BlackM

+0

실제로 문제는 내가 이미 존재하는 XMLParser를 만들었다는 것입니다. XMLParser의 이름을 XMLParserC로 변경 한 경우에도 여기에 오류가 있습니다. xmlToString = [[XMLParserC alloc] initWithData : data]; 호환되지 않는 포인터 유형 및 [xmlToString parseXML]에 대한 동일한 오류 – BlackM

관련 문제