2011-06-03 79 views
0

我正在開發一個應用程序,需要保存文件,而不是顯示在桌面上的標題,它只是在xcode 3上正常工作,現在我有xcode 4,當我加載tableView與由於訪問不良,所有文件的標題。這些文件存儲在主包中。我注意到,如果我刪除viewDidLoad(我加載文件列表)的內容,該應用程序工作正常!這是我的內容viewDidLoadiPhone Xcode 4文件捆綁問題

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 

NSString *documentsDirectory = [paths objectAtIndex:0]; 

list = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDirectory error:NULL]; 

任何人都可以幫助我嗎?

回答

0

我會建議檢查文件列表是否爲空。

NSError* error; 
list = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDirectory error:&error]; 

if (!list) 
{ 
    NSLog(error); 
} 

可能是由於某些SDK更新,您所訪問的目錄無法訪問或爲空。但是由於你的程序崩潰,它表明你的list變量是0x0

+0

我試圖在我的調試窗口中返回列表內容。事實上,它返回Dir中的文件。這不是一個0x0名單。即使我嘗試你的建議,也沒有什麼改變。 – 2011-06-03 14:53:25

+0

@Riccardo,上面的代碼中的NSError對象的內容是什麼? – 2011-06-03 16:22:54

0

從外觀看,list似乎是一個伊娃。如果這是正確的,那麼您將自動發佈的值分配給list。如果您稍後訪問它,您將嘗試訪問一個釋放對象並因此發生錯誤。如果您已經爲list定義的retain ED屬性,那麼你可以做,

self.list = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDirectory error:NULL]; 

如果出於某種原因,有一個屬性是不可能的,那麼就只需調用保留它這樣,

list = [[[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDirectory error:NULL] retain];