#objective-c #xcode4 #nsstring
#objective-c #xcode4 #nsstring
Вопрос:
Есть ли способ записать строку, которая считывается из текстового поля, в текстовый файл?
NSString *input = [textfield text];
NSString *path = @"myText.txt";
[input writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:NULL];
Ответ №1:
Да, в конечном счете, это так; но есть ряд других шагов, которые вы делаете, чтобы перейти от начала к концу (вам нужно, чтобы текстовое поле было подключено к IBOutlet или каким-либо другим доступным способом; путь, по которому myText.txt запись должна быть доступна для записи, и поэтому вам, вероятно, потребуется более длинный и точный путь, чем просто имя файла; вам, вероятно, потребуется также отправить фактический параметр ошибки, который можно установить, чтобы вы могли просматривать ошибки, возвращаемые при сбое вызова writeToFile при первых нескольких запусках этого кода).
Ответ №2:
Вам нужно будет определить путь, в основном, где сохранить файл. Этот код найдет папку Documents
NSArray *path = NSSearchPathForDirectoriesInDomains(
NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDirPath = [path objectAtIndex:0];
Вот код, который я использую для чтения и записи файлов.
-(void)writeFileToDisk:(id)data
{
NSArray *path = NSSearchPathForDirectoriesInDomains(
NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDirPath = [path objectAtIndex:0];
NSString *fileName = @"MyFileName.txt";
NSString *fileAndPath = [documentDirPath stringByAppendingPathComponent:fileName];
[data writeToFile:fileAndPath atomically:YES];
}
-(void)readFileFromDisk
{
NSArray *path = NSSearchPathForDirectoriesInDomains(
NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDirPath = [path objectAtIndex:0];
NSString *fileName = @"MyFileName.txt";
NSString *fileAndPath = [documentDirPath stringByAppendingPathComponent:fileName];
NSArray *array = [[NSArray alloc] initWithContentsOfFile:fileAndPath];
NSLog(@"%@",array);
[array release];
}