2011-05-05 65 views
0
-(void)parser:(NSXMLParser *)parser 
didEndElement:(NSString *) elementName 
namespaceURI:(NSString *)namespaceURI 
qualifiedName:(NSString *)qName{ 

    if ([elementName isEqual:@"image"]) { 

     NSLog(@"Encoded Data %@",encodedData); //THIS SHOWS UP FINE 
     //lets now show image 

     UIImage * decodedImage = [[UIImage alloc] initWithData:[Base64 decode:encodedData]]; 
     [Image setImage:decodedImage]; //WHERE IS THE IMAGE? 
     [encodedData release]; 
     encodedData = nil; 
    } 
} 

我正在使用以下库进行base 64解码。 http://imthi.com/blog/programming/iphone-sdk-base64-encode-decode.php我为什么无法在屏幕上查看图像?

+0

是否发生了碰撞事故? – 2011-05-05 08:00:40

+0

可能是你的图像没有正确解码... – Gypsa 2011-05-05 08:06:35

+0

你的解码函数是否返回NSData – Gypsa 2011-05-05 08:07:12

回答

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

    if ([elementName isEqual:@"image"]) { 

     NSLog(@"Encoded Data %@",encodedData); //THIS SHOWS UP FINE 
     //lets now show image 

     UIImage * decodedImage = [[UIImage alloc] initWithData:[Base64 decode:encodedData]]; 
     [yourImageView setImage:decodedImage]; //WHERE IS THE IMAGE? 
     //Make sure that you have the imageView added as subview to your current view. 
     [encodedData release]; 
     encodedData = nil; 
     [decodedImage release]; 
    } 
} 
1

这是错误的。

[Image setImage:decodedImage]; //WHERE IS THE IMAGE? 

你可能试图做的是;

[myImageView setImage:decodedImage]; 

因此,请将代码发布到您定义UIImageView *的位置。如果您有一个名为的图像如此定义的实例变量,请注意,您不应该使用大写字母来启动它,因为这意味着类定义,而不是ivar。

+1

+1。反对命名约定使调试变得很痛苦。 – Eiko 2011-05-05 08:20:56

0

我不知道你是否有任何控制服务器,但我不会把图像数据直接放在XML中。为什么不直接将URL映射到XML中,然后使用该URL下载图像?

另外我会推荐使用DOM解析器。我通常使用JSON,所以我不知道哪一个最适合XML,但是DOM解析器使您的生活变得更轻松。

+0

不错,但图像是TIF格式的实际传真 – jini 2011-05-07 01:42:56

0

从您发布的代码以及详细阐述该问题的程度,很难找出代码无法正常工作的原因。在发布任何问题时,尽可能尽量清楚。通过提供日志输出和屏幕截图的帮助,让这里的人们可以精确地了解你的问题。

我对您从Web服务获得的数据有疑问。但正如你所说的那样,那么Jenifer说,解码就是问题所在。你有没有尝试打印解码数据的描述?

如果它被解码,然后将它添加到imageView可能是一个问题。 正如罗杰认为你的'图像'对象不应该是UIImageView类的实例,但UIImage类,这是一个非常愚蠢的错误,我不觉得会是这样。

你能打印你从编码数据中得到的NSData的日志吗?

相关问题