2011-12-23 42 views
0

我正在使用以下代碼在UIImageView中顯示來自服務器的圖像。使用initWithData加載服務器映像不起作用

NSURL *url = [NSURL URLWithString:@"http://www.gettyicons.com/free-icons/125/miscellaneous/png/256/apple_256.png"]; 

NSData *imageData =[[NSData alloc] initWithContentsOfURL:url]; 
imgLargePicture.image = [[UIImage alloc] initWithData:imageData]; 

我可以看到Saffari圖像,但圖像不能在iPhone應用程序呈現。我在網上搜索了很多東西,甚至在stackoverflow中,每個地方都有相同的代碼來顯示來自服務器的圖像。但在我的情況下,它不工作。

任何人都可以幫助我嗎?

+0

在imageData,NSLog(@「ImageDataLenght:%d」,[imageData length])上做一個日誌。如果您有字節,則問題出現在您的圖像視圖中。在此粘貼代碼。 –

+0

你不應該下載UI線程中的圖像,你應該創建一個新的線程來做到這一點。或者使用一些庫來下載異步的圖像。 –

+0

嘗試在imgLargePicture.image = [[...]]語句後放置斷點。它顯示了什麼?一個空指針?或分配的地址?如果分配了地址,則可能沒有將imageView作爲子視圖添加到主視圖中。 – Ravi

回答

0

這是由於組織中的代理服務器設置而發生的。它要求我提供用戶名&密碼才能通過代理。所以這是通過在我傳遞證書的地方實現AuthenticationChallenge方法來解決的。

+0

在答案中給出你如何傳遞細節的代碼。這是回答你自己的問題的正確方法。 – CRDave

0

只是在我的應用程序中試過這個代碼,它工作。您沒有將「imgLargePicture」(我認爲它是UIImageView)添加爲您的UIViewController的視圖子視圖或不給它一個適當的框架。 在-viewDidLoad:試試這個,看看它是否

UIImageView *imgLargePicture = [[UIImageView alloc] initWithFrame:self.view.bounds]; 
[self.view addSubview:imgLargePicture]; 
NSURL *url = [NSURL URLWithString:@"http://www.gettyicons.com/free-icons/125/miscellaneous/png/256/apple_256.png"]; 

NSData *imageData =[[NSData alloc] initWithContentsOfURL:url]; 
imgLargePicture.image = [[UIImage alloc] initWithData:imageData]; 
+0

感謝您的回覆。我複製了你在我的應用程序中提到的代碼,但它也不起作用。但如果我通過使用[UIImage imageName:@「someImage.png」]加載圖像來替換相同的代碼,那麼一切正常。我檢查了調試器,我可以在NSData中看到一些值,這意味着圖像是從服務器下載的,但不知何故未顯示。還有什麼我可以檢查? – Priyanka

0

我用你相同的代碼和我得到的圖像,所以請檢查NSData的,並確保ImageView的IBOutlet中應正確連接。相同的代碼在我身邊運行良好,我已經檢查xcode。

+0

感謝您的回覆。我檢查了IBOutlet並且它已正確配置。要檢查我是否通過加載帶有名稱的圖像替換了上述代碼,並且在這種情況下圖像正確顯示。 – Priyanka