Ваш метод обработчика для сбора данных акселерометра кажется не очень эффективным. Вы выделяете ресурсы (память, файл) каждый раз, что может занять много времени.
Вы должны выделить необходимые ресурсы только один раз (то есть использовать dispatch_once) и оставить файл открытым. Используйте NSFileHandle (метод fileHandleForWritingAtPath) для добавления данных в конец файла.
Кроме того, NSHomeDirectory () - это не то место, где вы должны сохранять пользовательские данные, поскольку приложения для iOS находятся в «песочнице».
Либо используйте NSTeilitaryDirectory (), либо пишите в папке «Документы» или «Библиотека». Ниже приведен пример кода Apple, обычно в классе делегатов приложения:
- (NSString *)applicationDocumentsDirectory {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
return basePath;
}