Причина, по которой ваш существующий код не перезаписывает файл index.html
, заключается в том, что приложение не может перезаписать свои ресурсы. Руководство по программированию приложений для iOS от Apple специально гласит:
Это каталог, содержащий само приложение. Не пишите ничего в этот каталог. Во избежание взлома каталог комплекта подписывается во время установки. Запись в этот каталог изменяет подпись и предотвращает повторный запуск приложения.
Вместо этого пишите в каталог документов. Вы можете получить путь к каталогу документов следующим образом:
NSString * docsDir = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
Обратите внимание, что NSHomeDirectory()
на iOS просто возвращает путь к комплекту вашего приложения. Получив путь к каталогу документов, вы можете записать в ресурс, скажем, index.html, следующим образом:
NSString * path = [docsDir stringByAppendingPathComponent:@"index.html"];
[myString writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
Обратите внимание, что я изменил ваш параметр error:
на nil
. На самом деле это ни на что не повлияет, но обычной практикой является использование nil
для обозначения объектов NULL Objective-C.