Я очень новичок в задаче C. У меня есть случай, когда мне нужно через равные промежутки времени отправлять запрос на URL-адрес сервера. Я создал асинхронное URL-соединение и использовал функцию NSTimer для вызова функции viewWillAppear.
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"myurl/test.csv"] cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:15.0];
NSURLConnection *connection= [[NSURLConnection alloc] initWithRequest:request delegate:self];
if(connection){
label.text = @"connecting...";
}else{
//
}
}
-(void)connection :(NSURLConnection *) connection didReceiveData:(NSData *)data{
[self viewWillAppear:TRUE];
response = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(response);
}
Я использовал следующий метод NSTimer для вызова метода viewWillAppear.
- (void)checkURLRequest
{
[self setProgressTimer:[NSTimer
scheduledTimerWithTimeInterval:(1.0f / 30.0f)
target:self
selector:@selector(viewWillAppear:)
userInfo:self
repeats:TRUE]];
}
- (void)setProgressTimer:(NSTimer *)theTimer
{
[_progressTimer invalidate];
_progressTimer = theTimer;
}
Мой подход вообще правильный? Потому что, когда я обновил файл «test.csv» на сервере, он не может выполнять обновление в реальном времени, так как и когда файл изменяется, он все еще регистрирует старые значения в файле.