Вы можете создать экземпляр NSTimer и заставить его каждые X секунд вызывать другой метод, который отвечает за чтение файла и обновление индикатора выполнения. Этот метод может использовать stringWithContentsOfFile:
NSString, чтобы прочитать файл в строку, а затем проанализировать его соответствующим образом.
Например:
// Create the invocation of the method to call
NSUInteger X = 2; // Change depending on how often you want the timer fired
NSMethodSignature *signature = [self methodSignatureForSelector:@selector(read)];
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:signature];
// Create the timer, adding it to the default run loop
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:X
invocation:invocation
repeats:YES];
И позже вы определяете селектор read
:
- (void)read {
NSString *fileContents = [NSString stringWithContentsOfFile:@"aFile.txt"];
NSArray *lines = [fileContents componentsSeparatedByString:@"\n"];
NSString *lastLine = [lines lastObject];
// Your own parsing and updating code here
}
Если вам нужна определенная точка остановки, вы можете сохранить timer
в иваре внутри вашего класса, а затем вызывать [timer invalidate];
всякий раз, когда ваш код синтаксического анализа внутри read
определяет, что вы закончили с любым выполняемым процессом.
Соответствующие документы: