Есть ли какой-нибудь пример кода о том, как отправлять асинхронное NSURL-соединение на сервер с регулярным интервалом? - PullRequest
1 голос
/ 24 января 2012

Я работал над доступом к серверу, используя NSURLConnection.Мне нужен пример кода, который может объяснить, как запрашивать через регулярные промежутки времени?Желательно ли добавить переменную экземпляра NSURLConnection в метод viewDidLoad?

 - (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;
    }

1 Ответ

4 голосов
/ 24 января 2012

Вы можете настроить NSTimer для достижения этого поведения:

- (id) init
{
    // regular [super init], etc. etc.
    NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:10.0 target:self selector:@selector(sendRequest) userInfo:nil repeats:YES];
    // other custom initialization continues
    return self;
}

- (void) sendRequest
{
    NSURLConnection *conn = [NSURLConnection connectionWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://example.com/service.php"]] delegate:self];
}

// and implement NSURLConnectionDelegate methods here
...