2011-06-03 62 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];