【问题标题】:Code works on simulator but not on device代码适用于模拟器但不适用于设备
【发布时间】:2016-04-19 11:38:12
【问题描述】:

我制作了一个应用程序,它使用“writeToURL”在附加到资源的 txt 文件上写入文本。当我在模拟器上加载应用程序时,它会写入您输入的文本,但是当您在设备上启动应用程序时,它什么也不会写入。如果你在 txt 文件上写了一些东西,设备上加载的应用程序会显示它,但它不能像模拟器一样覆盖它...... 有什么问题? 谢谢! 代码(iOS 目标 C):

-(IBAction)cargarALaWeb:(id)sender{
if ([_texto.text isEqualToString:[NSString stringWithFormat:@""]]) {
    [_web1 loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://contactonotpad.wix.com/inicio#!ayuda-con-cargar-en-la-web/ak5ig"]]];

}
else{
NSString *textofile=_texto.text;

[textofile writeToURL:[NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"web" ofType:@"html"]] atomically:YES encoding:NSUTF8StringEncoding error:nil];
    NSLog(@"Escrito");
    [_web1 loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"web" ofType:@"html"]]]];
}
}

`

【问题讨论】:

  • 为您使用的实际语言标记问题,并显示您正在使用的代码。包含您尝试写入的 URL 的详细信息

标签: ios objective-c simulator


【解决方案1】:

您要在应用程序包中编辑的任何文件都需要先复制到应用程序文档目录中,然后您应该从那里编辑和使用该文档。您不应该/不能编辑 app bundle 内容。

【讨论】:

  • 嗯,其实是一个html文件
  • 正如我所说,将其复制到允许编辑的其他位置,例如文档目录
  • 我已经在几个不同的地方复制了它,但它仍然无法正常工作。 ://
  • 所以您复制了文件并更改了fileURLWithPath 以引用新位置?新位置的路径是什么?
  • 嗯...不,我通过文件夹移动了文件...(我很书呆子...)我也尝试创建一个目录,但我无法将文件移动到那里
【解决方案2】:

How to copy a file to the documents directory

Apples docs on the file system

简短的回答。出于安全原因,应用程序无法写入捆绑包中的文件。每个应用程序都有一个“沙盒”,可以在其中编辑文件。您必须编写代码将文件从捆绑包复制到可以编辑文件的文档目录。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-01
    • 2011-03-08
    • 2015-02-13
    • 2011-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多