2011-05-05 64 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的日誌嗎?

相關問題