2016-11-10 68 views
0

我有这2行代码:不能读取与写入将writeToFile数据:原子

[[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://somepath.com/first.plist"]] writeToFile:@"first.plist" atomically:YES]; 
NSDictionary *dTmp=[[NSDictionary alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"first" ofType:@"plist"]]; 

但我dTMP的为空。我没有指定任何路径,所以它应该存储在根目录中,对吧? 我的错误是什么?

+2

你不能在mainBundle中写入。 – Larme

+0

你可以在'NSDocumentDirectory' /'NSCachedDirectory'中写文件 –

+0

谢谢,我要检查这个。 – NGG

回答

0

您的代码有几个问题。

您不应该使用像dataWithContentsOfURL这样的同步网络呼叫。它会阻止用户界面。而是看看NSURLSession。

无法写入根目录中的文件。 iOS应用程序仅限于几个沙箱目录,如应用程序的文档和缓存目录。

您应该编写写入和读取到其中一个允许的沙箱目录的代码。

另外,不要写复合语句。这使它很难读取和调试。在每一行上做一件事。

检查每一步的返回值,看看发生了什么问题。

+0

谢谢,是的,你是对的,它只是为了测试,我不知道我不能写在根。 – NGG