首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用[NSBundle mainBundle]写入文件失败

使用[NSBundle mainBundle]写入文件失败
EN

Stack Overflow用户
提问于 2011-05-02 10:28:00
回答 5查看 14.5K关注 0票数 16

我正在尝试从一个文件中获取内容并将其写入另一个文件中。我读得很好,但是我不能把它写到另一个文件中。

我有一个单词数据库。我想根据字母的数量将单词分成不同的文件。所有四个字母的单词都放入一个文件中,依此类推。我在我的资源中添加了一个名为"4letter“的txt文件,下面是我的代码:

代码语言:javascript
复制
NSError *error;

//READ
NSString *dbFile = [[NSBundle mainBundle] pathForResource:@"words" ofType:@"txt"];
NSString *test = [NSString stringWithContentsOfFile:dbFile encoding:NSUTF8StringEncoding error:&error];

//convert from string to array
NSArray *lines = [test componentsSeparatedByString:@"\n"]; 

NSFileHandle *logFile = nil;
logFile = [NSFileHandle fileHandleForWritingAtPath:[[NSBundle mainBundle] pathForResource:@"4letter" ofType:@"txt"]];

//Test if write works
for (int i=0; i<5; i++) 
{
    NSString *randomAnagram = [[lines objectAtIndex:i] lowercaseString];
    [logFile writeData: [randomAnagram dataUsingEncoding: NSNEXTSTEPStringEncoding]];
}
EN

回答 5

Stack Overflow用户

发布于 2011-05-02 10:33:47

在iOS中,您不能写入应用程序包中的文件--整个包是只读的。请改用Documents文件夹中的路径。

票数 24
EN

Stack Overflow用户

发布于 2012-09-18 16:14:37

有关更好的理解,请参阅特殊的File System Programming Guide

在iOS中,您不能写入应用程序包中的文件--整个包是只读的。

在iCloud备份的上下文中,考虑阅读iOS Data Storage Guidelines以更好地了解以下目录的用途。

/AppName.app

这是包含应用本身的捆绑包目录。不要在此目录中写入任何内容。为防止篡改,捆绑包目录在安装时签名。写入此目录会更改签名并阻止再次启动你的应用程序。

/Documents/

使用此目录存储关键用户文档和应用程序数据文件。关键数据是指应用程序无法重新创建的任何数据,例如用户生成的内容。此目录的内容可通过文件共享提供给用户。此目录的内容由iTunes备份。

/Library/

此目录是非用户数据文件的文件的顶级目录。通常将文件放在几个标准子目录中的一个中,但也可以为要备份但不向用户公开的文件创建自定义子目录。您不应将此目录用于用户数据文件。此目录的内容(caches子目录除外)由iTunes备份。有关库目录的其他信息,请参阅“库目录存储特定于应用程序的文件”。

查看iOS Standard Directories: Where Files Reside中的完整列表(tmp/、文档/收件箱)

更新

我使用NSFileManager方法URLForDirectory:inDomain:appropriateForURL:create:error:

票数 10
EN

Stack Overflow用户

发布于 2011-05-02 10:52:25

就像Caleb说的,你不能写你的应用程序的目录,但你可以写你的应用程序的Documents文件夹。你可以像这样得到它:

代码语言:javascript
复制
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5853014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档