Как я могу прочитать введенный пользователем текст из текстового поля и записать его в текстовый файл в Xcode?

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