我不確定我的問題到底是什麼,因爲我一直在使用此方法一段時間,並且從來沒有遇到過這個問題。Array無法從plist加載數據
基本上,正如標題所說。此代碼從位於「資源」組中的plist加載數據
NSString *myFile = [[NSBundle mainBundle] pathForResource:@"myList" ofType:@"plist"];
myArray = [[NSArray alloc]initWithContentsOfFile:myFile];
NSLog(@"%@", myArray);
它顯示(null)。有人知道爲什麼
我有相同的ViewController另一個設置和工作得很好。然而這個特殊的plist不加載。而且我甚至還刪除了plist,並從另一個創建了一個副本,以確保不是結構問題。
我這樣做是錯誤的嗎?我應該使用FileManager嗎?
UPDATE --------------------------------------------- ----------------------------
好吧,我簡直不敢相信我即將說的話。大聲笑
我正在使用XCode 4,您在Xcode中編輯plists的方式與Xcode 3.x不同。就像在早期的版本中,你可以選擇plists的根目標是你希望他們(數組,字典等)我的問題是我試圖加載到NSArray中的plist實際上是一個結構化的字典。但是我從來沒有在Xcode中看到過這種情況,除了使用TextEdit或其他文本編輯器瀏覽內容之外,我不知道如何看到這一點。
非常愚蠢的我必須說。有誰知道爲什麼XCode 4不會像XCode 3.x那樣顯示plist的根?
的XCode 3.X:
的XCode 4:http://dl.dropbox.com/u/919254/Screen%20shot%202011-04-10%20at%202.30.35%20AM.png
這工作...雖然我不明白爲什麼。plist的結構與我用於其餘文件的結構完全相同。 :( – MrShoot 2011-04-10 15:18:12
如果plist中的頂層對象是一個數組,則* *不能*使用'NSDictionary'或'NSMutableDictionary'來加載plist,反之亦然。這不是用戶首選項的問題。 ,OP的問題是底層plist中的頂層對象是一個字典而不是數組,如果是這樣的話,那麼@ManuelDiaz發佈了一個錯誤的plist文件示例 – jlehr 2011-04-10 15:28:47
感謝您的澄清,我有這個未定義的行爲Xcode 4也是如此。直到@Manuel Diaz更新Xcode 4才隱藏了plist root。 – David 2011-04-10 17:07:59