2011-09-23 62 views
0

我創建了一個名爲list.plist的plist,我只是無法讀取其中的信息。爲什麼我不能使用我創建的plist?

NSString *path = [[NSBundle mainBundle] bundlePath]; 
NSString *datapath = [path stringByAppendingPathComponent:@"list.plist"]; 
NSArray *array = [[NSArray alloc] initWithContentsOfFile:datapath]; 
self.tableDataSource = array; 
NSLog(@"%d", [tableDataSource count]); 

當我運行它,它說計數爲0,但如果我更改文件名Elements.plist(從蘋果的示例代碼的plist),它會工作。這兩個文件位於相同的路徑中。 list.plist是我自己編寫的,即使我將dictionary.plist複製到list.plist,它也不起作用。

回答

0

文件名在iOS,FYI中區分大小寫。另外,嘗試將樣本中的Elements.plist重命名爲list.plist,然後重試。也許是關於文件內容,而不是文件名。

+0

如果我將Element.plist重命名爲list.plist,它不起作用!但如果我將它重命名爲list1.plist,它就可以工作!無論list.plist(我創建的文件)的名稱重命名爲,它都不會起作用。 – Terry

+0

List.plist是否有可能是您的項目信息plist的名稱,即用作iOS上的應用程序清單的名稱?檢入項目設置。該文件有點特別。 –

0

檢查您創建的文件是否包含在構建的「複製資源」階段中。這是確保在運行時從項目目錄複製到包的位置所必需的。

在Xcode 4中,您可以通過選擇項目導航器頂部的項目來完成。單擊「Build Phases」選項卡並展開「Copy Bundle Resources」部分。您應該看到複製的文件列表。如果你看到Elements.plist文件而不是list.plist,那就是你的問題。將list.plist從項目導航器拖到複製文件列表並重建。

+0

他們都在那裏。 – Terry

+0

我建議你在設置dataPath之後添加一個NSLog,以查看在模擬器中運行時你嘗試訪問的路徑。一旦知道它正在加載的完整路徑,請通過查找器查看該路徑是否存在。如果一切看起來都不錯,那麼你可能會考慮發佈你的plist文件的內容:或許這裏有一些格式化的東西。 –

+0

NSLog結果與/user/....../Reg3.app/list.plist類似,我無法在查找程序中找到它,因爲我可以找到Reg3.app文件。如果我將代碼中的路徑更改爲完整路徑(如/Users/terry/Documents/Reg3/Reg3/list.plist),問題仍然存在。 – Terry

相關問題