_1.問題描述:_在使用NSString *path = [[NSBundle mainBundle]pathForResource:picName ofType:nil];方法獲取圖片絕對路徑時,獲取到路徑為 null, 即路徑獲取失敗,運行提示類似如下異常:【Could not load the...
_1.問題描述:_
在使用
NSString *path = [[NSBundle mainBundle]pathForResource:picName ofType:nil];
方法獲取圖片絕對路徑時,獲取到路徑為 null, 即路徑獲取失敗,運行提示類似如下異常:
【Could not load the <圖片名字>
image referenced from a nib in the bundle with identifier <項目名字>
】
導致後來通過圖片路徑將圖片添加到數組中失敗,提示無法添加空對象.
_2.問題分析:_
原文:http://blog.csdn.net/u012945598/article/details/17955215
問題出在將圖片導入項目的步驟.將圖片文件夾拖入 Xcode 時,會有兩個Added folders選項:

Create groups
Create folder references
如果選擇了第一種方式添加了一個文件,我們會發現被添加進來的文件,文件夾是黃色的
選擇了第二種方式添加進來的文件的文件夾是藍色的
那麼兩種方式有什麼區別呢?
1.使用Create groups,為任何新增加的文件夾創建組
,組的概念也許我們並不陌生,我們在項目中完全可以手動添加一個groups(右鍵點擊選擇New Group),但是手動添加的groups實際上並不會存在於項目的目錄中,你會發現被添加進groups中的文件仍在位於它原來所在的位置,但是從外部引入進來的groups並不會如此,正如我們剛纔那樣。groups一旦被創建或添加,都是以黃色文件夾的形式存在的,當你想要使用文件夾中的某個類的頭文件時,你可以直接添加它的引用,例如
'#include xxx.h
因為groups下的cpp文件是會被編譯的。
2.使用Create folder references 方法只是將文件單純的創建了引用,這些文件不會被編譯,所以在使用的時候需要加入其路徑,比如在我們想要使用上圖中的myScripts文件夾下麵有某個頭文件,則需要按照下麵的方法添加聲明:
'#include myScripts/xxx.h
否則編譯器就會告訴你找不到xxx.h文件。
這就是項目中黃色文件夾與藍色文件夾的區別以及使用方法
至於Destination對應選項,當你選擇了這個選項時,如果你想要引入的文件不在你的項目文件的目錄下,Xcode則會自動將這個文件複製一份拷貝到你的項目的目錄下
如果你不選擇,並且這個文件也並不在你的項目目錄下,那麼這個文件仍然可以被使用,但是一旦你將項目拷貝到了別的地方時,這個文件就會找不到了。因為這個文件在你的電腦中,而不在你的項目中。
_3.解決方法:_
添加圖片文件時,選擇第一個選項Crest groups, 將其進行編譯