文件操作在设备上不起作用
Posted
技术标签:
【中文标题】文件操作在设备上不起作用【英文标题】:File operation not working on device 【发布时间】:2012-01-10 19:29:50 【问题描述】:什么会使在模拟器上运行良好的文件操作无法在 ios 设备上运行?
当使用[NSBundle mainBundle]
时,文件被FileManager
找到时,相邻文件操作产生不同结果的不同原因可能是什么?
我有时会注意到这一点,只是想知道发生这种情况时应该考虑什么。
【问题讨论】:
如果你给了你Mac中存在的路径,它将在模拟器上运行并执行操作。但在设备中,它不会。 【参考方案1】:您似乎正在尝试读取应用程序包中的文件。你可以通过代码得到它的路径:
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"fileName" ofType:@"ext"]; //然后就可以使用NSFileManager读取/复制了
应用程序包中的所有文件都是只读的。您可以从这里获得更多信息:
http://developer.apple.com/library/ios/#documentation/CoreFoundation/Conceptual/CFBundles/AccessingaBundlesContents/AccessingaBundlesContents.html#//apple_ref/doc/uid/10000123i-CH104-SW8
【讨论】:
【参考方案2】:正如@Aadhira 在上面的评论中所说,模拟器将其文件存储在你 Mac 上的一堆文件夹中,而不是某种模拟的主包/文档目录沙箱中。
为了从您的主包中获取静态文件,您必须创建一个从 [NSBundle mainBundle]
开始的路径并在其上添加路径组件。
【讨论】:
以上是关于文件操作在设备上不起作用的主要内容,如果未能解决你的问题,请参考以下文章
transform:翻译动画在 iOS 15.1 设备上不起作用
为啥从 https 服务器下载文件在 montavista linux 的嵌入式设备上不起作用?
WKWebView 从文档目录加载 html 在设备上不起作用