Я пишу приложение, которое сохраняет текст в файл CSV. Но я не могу найти файл на пути, попробовав его в симуляторе.Xcode не создает файл
Вот код:
#import "protboViewController.h"
@interface protboViewController()
@end
@implementation protboViewController
@synthesize email;
- (IBAction)retractKeyboard:(id)sender{
[self resignFirstResponder];
}
- (IBAction)saveInfo:(id)sender {
NSString *resultLine=[NSString stringWithFormat:@"%@\n",
self.email.text];
NSString *docPath =[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0];
NSString *mailLista=[docPath stringByAppendingPathComponent:@"elista.csv"];
if (![[NSFileManager defaultManager] fileExistsAtPath:docPath]) {
[[NSFileManager defaultManager] createFileAtPath:mailLista contents:nil attributes:nil];
}
NSFileHandle *fileHandle = [NSFileHandle fileHandleForUpdatingAtPath:mailLista];
[fileHandle seekToEndOfFile];
[fileHandle writeData:[resultLine dataUsingEncoding:NSUTF8StringEncoding]];
[fileHandle closeFile];
[email protected]"";
NSLog(@"info saved");
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
я получаю «информацию сохраненную» приглашение в консоли, но когда я иду в папку «iPhone Simulator» и проверьте, нет файла.
Также, как я могу экспортировать этот файл на свой компьютер с устройства?
Заранее благодарен!
EDIT:
Теперь у меня есть это создать файл и добавив одну строку текста, но если я пытаюсь добавить одну строку текста весь файл заменяется новым файлом с одной строки текста.
#import "protboViewController.h"
@interface protboViewController()
@end
@implementation protboViewController
@synthesize email;
- (IBAction)retractKeyboard:(id)sender{
[self resignFirstResponder];
}
- (IBAction)saveInfo:(id)sender {
NSString *resultLine=[NSString stringWithFormat:@"%@\n",
self.email.text];
NSArray *docPath =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDirectory = [docPath objectAtIndex:0];
NSString *mailLista=[docDirectory stringByAppendingPathComponent:@"elista.csv"];
NSError *csvError = NULL;
BOOL written = [resultLine writeToFile:mailLista atomically:YES encoding:NSUTF8StringEncoding error:&csvError];
if (!written)
NSLog(@"write failed, error=%@", csvError);
else
NSLog(@"Saved! File path =", mailLista);
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
Я искал ответ, и я нашел то, что сказал: «Так как вы не используете для цикла убедитесь, что и объявить outputString в файле заголовка. Инициализировать его в viewDidLoad и тогда вы будете иметь возможность добавить к нему ».
Как объявить его в моем заголовочном файле и что мне нужно инициализировать в viewDidLoad?
Еще раз спасибо.
Нет, это неправильное изменение. OP пытается добавить к существующему файлу, если он уже существует. Ваше изменение всегда будет перезаписывать любой существующий файл. – rmaddy
Смотрите мое редактирование на OP – Edalol
@rmaddy, вы правы, я не заметил его намерения. без моего изменения, по крайней мере, напечатал правильный путь? –