无法使用XML中的数据填充UITableView(俄语文本不会像它应该出现在slog中)

时间:2013-12-06 19:35:14

标签: objective-c nsxmlparser

我无法弄清楚为什么在解析XML页面时我看不到正确的文字。我的代码正在运行但是,当我尝试在NSLog中输出时,我可以看到以下内容:

{
        description = "\U0429\U0435\U043d\U043e\U043a \U0432 \U0434\U0430\U0440. \U041f\U0430\U043f\U0430 - \U043e\U0432\U0447\U0430\U0440 \U0412\U0415\U041e. \U041c\U0430\U043c\U0430 - \U043c\U0435\U0442\U0438\U0441 \U043b\U0430\U0431\U0440\U0430.";
    }

我已经用填充了英文字母的示例解析了XML,为什么我在这里看不到俄文?或许它不是关于文本,我犯了一些错误?

我的NSObject类中有一个代码用于从中获取数据:

@implementation requestManager


-(id)initWithDelegate:(id<requestDelegate>)delegateObject{

    self = [super init];
    if (self){

        self.delegate = delegateObject;
        self.contentData     = [NSMutableData data];
        self.listOfItems = [NSMutableArray array];
    }

    return self;
}

-(void)loadXmlData{

    NSURL *urlString = [NSURL URLWithString:@"http://*************url address**********"];
    NSURLRequest *req = [NSURLRequest requestWithURL:urlString];

    NSURLConnection *connection = [NSURLConnection connectionWithRequest:req delegate:self];
    [connection start];

}

-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{


    [self.contentData appendData:data];
}

-(void)connectionDidFinishLoading:(NSURLConnection *)connection{

    NSXMLParser *parserObj = [[NSXMLParser alloc]initWithData:self.contentData];
    parserObj.delegate = self;
    [parserObj parse];
}



#pragma mark - XML PARSER DELEGATE METHODS

-(void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{


    if ([elementName isEqualToString:@"description"]) isDescription = YES;
    if ([elementName isEqualToString:@"text"]) isText = YES;
    if ([elementName isEqualToString:@"name"]) isName = YES;


    if ([elementName isEqualToString:@"images"]){
        self.currentPosition = [NSMutableDictionary dictionary];
    }

}

-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{

    if ([elementName isEqualToString:@"description"]) isDescription = NO;
    if ([elementName isEqualToString:@"text"]) isText = NO;
    if ([elementName isEqualToString:@"name"]) isName = NO;

    if ([elementName isEqualToString:@"images"]){
        [self.listOfItems addObject:self.currentPosition];
    }
}

-(void)parserDidEndDocument:(NSXMLParser *)parser{

    NSLog(@"%@", self.listOfItems);
}

-(void)parser:(NSXMLParser*)parser foundCharacters:(NSString *)string{

    if (isDescription) [self.currentPosition setValue:string forKey:@"description"];
    if (isText) [self.currentPosition setValue:string forKey:@"text"];
    if (isName) [self.currentPosition setValue:string forKey:@"name"];


}

0 个答案:

没有答案