2011-03-04 89 views
0

我開發了一個使用核心數據存儲員工詳細信息的iPad應用程序。我只有三個字段:名稱,ID和部門。在啓動應用程序時,名稱以表格視圖顯示,並在任何行中單擊時,相應的ID和部門將顯示在詳細視圖中。顯示圖像的問題

現在我想要在詳細視圖中顯示員工的照片,但不是將它們存儲在覈心數據中。我在資源文件夾中有一個名爲「圖像」的子文件夾,圖像以表格視圖中顯示的名稱順序存儲。

請在這方面幫助我。

+0

因此,圖像文件名包含員工姓名?像「John Smith.jpg」? – DarkDust 2011-03-04 09:17:48

+0

是的。圖像文件名包含員工姓名 – 2011-03-04 09:28:34

回答

1

使用靜態方法[NSBundle mainBundle]來獲取表示您的應用程序包的對象。通過這個,您可以調用實例方法- (NSString *)pathForResource:(NSString *)name ofType:(NSString *)extension來獲取您存儲的映像的路徑。一旦你有了路徑,你可以用圖像路徑創建一個UIImage的實例。然後,您可以創建一個UIImageView(如果您願意,可以在界面構建器中完成),然後您可以將該圖像設置爲您的實例UIImage

例如:

NSString* pathToImage = [[NSBundle mainBundle] pathForResource:@"pictureOfJohn" ofType:@"png"]; 
UIImage* image = [UIImage imageWithContentsOfFile:pathToImage]; 
UIImageView* imageView = [[UIImageView alloc] init]; 
imageView.image = image; 
[myEnclosingView addSubview:imageView]; 
[imageView release]; 

注意,創建和的ImageView的加入可以在界面生成器來完成。

+0

我需要澄清的一點是,我不需要數組,因爲我有多個圖像。上面的代碼如何將每一行與相應的圖片鏈接起來? – 2011-03-04 09:27:05

+0

有很多方法可以解決這個問題。一個可能是將圖像文件的名稱存儲在Core Data模型中。然後你可以在'pathForResource:'函數中使用它。在您加載詳細視圖時,您可以使用此模型創建一個使用模型中的信息創建的圖像以獲取正確的圖像? – 2011-03-04 09:31:55

+0

你確實知道你不需要使用該包?一個簡單的'[UIImage imageNamed:@「pictureOfJohn.jpg」]'做同樣的工作。 – DarkDust 2011-03-04 10:01:24

1

您應該閱讀一些關於CoreData實體的瞬態屬性。例如,您可以輕鬆添加屬性圖像,這是暫時的(=不會將值存儲到基礎持久性存儲),它可以直接從文件系統讀取/寫入圖像。換句話說,你可以在一個地方擁有所有東西,在一個類中沒有實體,在另一個類中處理圖像等。