остановить файлы от усечения цели C? - PullRequest
1 голос
/ 03 августа 2011

Я пытаюсь записать некоторые данные в файл в iphone sdk .... Я использую оператор for для записи, чтобы лучше объяснить ситуацию. У меня есть код:

for(int i = 0;i < 11;i++){

NSString *myFile = [documentsDirectory stringByAppendingPathComponent:@"hello.txt"];
[i writeToFile: myFile atomically:NO encoding:NSUTF8StringEncoding error:NULL];
}

Теперь я ожидаю12345678910 записано в файл, но в нем записано только 10, что означает, что файл обрабатывается каждый раз, когда я пишу в файл ... поэтому мой вопрос заключается в том, что я могу сделать, чтобы записать от 1 до 10 БЕЗ размещения всех строк, потому чтоданные ..

спасибо

Ответы [ 2 ]

4 голосов
/ 03 августа 2011

Документация SDK говорит об этом -writeToFile:atomically:encoding:error: Этот метод перезаписывает любой существующий файл с path .

Этот метод предназначен для выгрузки строки в файл. Для ваших целей вы можете создать строку или открыть файл с помощью [NSFileHandle fileHandleForWritingAtPath]:

NSString *myFile = [documentsDirectory stringByAppendingPathComponent:@"hello.txt"];
NSFileHandle *file = [NSFileHandle fileHandleForWritingAtPath:myFile];

for(int i = 0; i <= 10; i++) {
    NSString *dataString = [NSString stringWithFormat:@"%i", i];

    [file writeData:[dataString dataUsingEncoding:NSUTF8StringEncoding]];
}

[file closeFile];
2 голосов
/ 03 августа 2011

Если вы пытаетесь записать последовательность целых чисел в файл, я бы сказал об этом так:

NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:FILE_PATH];
for(int i=0; i<11; i++)
{
    NSString *str = [NSString stringWithFormat:@"%d",i];

    [fileHandle writeData:[str dataUsingEncoding:NSUTF8StringEncoding]];
}

[fileHandle closeFile];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...