2014-01-09 59 views
-5

我無法從文檔目錄打開jpg文件。文件存在,而不是零,但當我試圖打開它到UIImageView - 沒有任何反應。有誰能夠幫助我?在Obj-C中打開jpg文件

示例代碼:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                 NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *filename = [documentsDirectory stringByAppendingString:address]; 
UIImage *img =[[UIImage alloc] initWithContentsOfFile: filename]; 
[imgView setImage:img]; 

UPDATE 此代碼的PNG文件完美的作品。

+3

日誌文件路徑和驗證它確實存在。 –

+0

在視圖層次結構中是「imgView」還是隱藏?只是猜測。 – lupz

+0

imgView - 在視圖層次結構中的UIImageView – STBY

回答

0
  1. 當您修改文件路徑時不使用-[NSString stringByAppendingString:]。改爲-[NSString stringByAppendingPathComponent:]

    NSString *filename = [documentsDirectory stringByAppendingPathComponent:address];

  2. 調試和檢查你的文件名(NSString *)address和你的文件路徑(NSString *)filename他們是否正確。

+0

我試過使用stringByAppendingPathComponent,但沒有任何結果。文件路徑正確 - 我測試了幾次 – STBY

+0

我只是說'stringByAppendingPathComponent:'代替。 – klaudz

+0

對不起。我試過stringByAppendingPathComponent: – STBY

0

你的問題是路徑不正確。那是你的不正確的路徑:

var/mobile/Applications/<ID>/Documents2014-01-09--10:25:03.jpg 

,這將是該正確路徑:

var/mobile/Applications/<ID>/Documents/2014-01-09--10:25:03.jpg 

(發現的文件夾和文件名之間缺少的斜線);


試試這個:

NSURL *_resourceURL = [[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject] URLByAppendingPathComponent:@"2014-01-09--10:25:03.jpg"]; 
UIImage *_image = [[UIImage alloc] initWithContentsOfFile:[_resourceURL path]]; 

(它已經過測試真正裝置只能使用!)

+0

這是行不通的 – STBY

+0

正在真實設備上測試?你可以將'_image'伊娃登錄給我嗎? ('NSLog(@「%@」,_image);') – holex

+0

當然。這裏是日誌: STBY