使用[NSBundle mainBundle]写文件失败 [英] File write with [NSBundle mainBundle] fails

查看:106
本文介绍了使用[NSBundle mainBundle]写文件失败的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图从一个文件中获取内容,并将其写入另一个文件。我读得很好,但我不能写入另一个文件。

I am trying to take content from one file and write it into another. I am reading fine, but I am not able to write it into another file.

我有一个数据库的单词。我想根据字母数量将单词分成不同的文件。所有四个字母的单词进入一个文件,等等。我在我的资源中添加了一个名为4letter的txt文件,以下是我的代码:

I have a database of words. I want to separate the words into different files based on the number of letters. All four letter words go into one file, and so on. I added a txt file called "4letter" into my resources and the following is my code:

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]];
}


推荐答案

写入应用程序包中的文件 - 整个包是只读的。使用文档文件夹中的路径。

In iOS, you can't write into a file in your app's bundle -- the entire bundle is read-only. Use a path into the Documents folder instead.

这篇关于使用[NSBundle mainBundle]写文件失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆