2012-11-27 69 views
0

在我的應用程序中,我將圖像存儲在我的文檔文件夾中,並將它們的URI存儲在數據庫中。iOS Core Data無法從存儲的URI打開圖像

每當我試圖加載基於存儲在數據庫中的URI的圖像,我得到「無」作爲結果。

存儲的URI是這樣的:

/用戶/ MYNAME /庫/ Application Support/iPhone 模擬器/ 6.0 /應用/ 78325CF9-73B0-4D0D-B136-FD8FF8D837C1 /文檔/ WC_45FEAF25-AC0C -4E91-A5E2-AA48215F1E48-3147-000005C6C9E65B42.jpg

當我看着它的iTerm我看到的圖像是存在的,但在我的iTerm有cd到該目錄是這樣的:

/Users/myname/Library/Application \ Support/iPhone \ Simulator/6.0/Applications/78325CF9-73B0-4D0D-B136-FD8FF8D837C1/Documents/WC_45FEAF25-AC0C-4E91-A5E2-AA48215F1E48-3147-000005C6C9E65B42.jpg

通知空格

前的反斜線我想用這個函數來獲取圖像:

-(UIImage *) getImageFromURL:(NSString *)fileURL { 
    UIImage * result; 

    NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:fileURL]]; 
    result = [UIImage imageWithData:data]; 

    return result; //result is always nil 
} 

是與反斜槓的問題? 任何幫助非常感謝!

真誠,

佐利

+1

你不是應該使用'[NSURL fileURLWithPath:fileURL]'然後用下面的函數圖像可以被檢索(但仍然存儲在文件目錄中的圖片) ? – jjv360

+0

爲什麼? URLWithString正是要使用的函數 –

+0

由於它看起來像使用本地文件URL,但如果它前面不包含'file://',它需要使用'fileURLWithPath'轉換。 – jjv360

回答

1

的解決方案是不存儲在數據庫中的URI,只有圖像名稱。

- (UIImage*)loadImageWithName:(NSString*) name 
{ 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                 NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString* path = [documentsDirectory stringByAppendingPathComponent: 
         [NSString stringWithString: name] ]; 
    UIImage* image = [UIImage imageWithContentsOfFile:path]; 
    return image; 
} 
相關問題