NSFileHandle fileHandleForWritingAtPath retorna nulo com caminho válido
-
21-12-2019 - |
Pergunta
encontrei algumas coisas sobre esse assunto, mas até agora nada funcionou.
Estou tentando escrever no final de um arquivo usando o seguinte código:
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Filename" ofType:@"txt"];
NSString *textToWrite = @"Test";
NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:filePath];
[fileHandle seekToEndOfFile];
[fileHandle writeData:[textToWrite dataUsingEncoding:NSUTF8StringEncoding]];
[fileHandle closeFile];
Quando passo pelo código, filePath é definido como "/var/mobile/Applications/1669D96A-1ABA-4A4F-D083-A90EB728691B/MyApp.app/Filename.txt".
No entanto, o NSFileHandle fileHandleForWritingAtPath retorna nulo.O código não gera uma exceção/aviso e continua como se estivesse bem.Quando leio o arquivo em uma string, o novo texto não está lá, apenas o que está inicialmente no arquivo (digitado no Xcode).Eu uso exatamente o mesmo código para obter o caminho de leitura do arquivo e funciona!
Solução
O pacote de aplicativos é somente leitura.Você não pode gravar em nenhum caminho do pacote.É por isso que você ganha um nil
identificador de arquivo.