iOS限制请求

2020-06-15  本文已影响0人  GuiiLiin

iOS开发中 经常遇到搜索框实时根据输入内容进行网络请求 为避免输入内容过快进行网络请求太过频繁 特做以下限制

先申明一下以下属性 后面做限制使用

// 防止输入过进行网络请求程序崩溃
//记录当前时间
@property(nonatomic,strong)NSTimer *currentTimer;
//记录上次的时间
@property(nonatomic,strong)NSTimer *lastTimer;
//记录上一次输入的时间
@property(nonatomic,assign)long long previousInputTime;

textFieldTextChange监听textField的输入内容改变值里面进行操作 下面代码中 requestData为根据输入内容进行网络请求的操作

#pragma mark - textFieldDelegate
-(void)textFieldTextChange:(UITextField *)textField{

    NSLog(@"textField1 - 输入框内容改变,当前内容为: %@",textField.text);

  //  防止textField输入频率太快 接口请求太频繁导致程序崩溃===================================
    NSTimeInterval time = [[NSDate date] timeIntervalSince1970] * 1000;
    NSLog(@"self.previousTime = %lld, time = %lld time - self.previousTime = %lld",self.previousInputTime,(long long)time,(long long)time - self.previousInputTime);
    self.currentTimer = [NSTimer scheduledTimerWithTimeInterval:0.5f target:self selector:@selector(requestData) userInfo:@"test" repeats:NO];
    if (time - self.previousInputTime < 400) {
        [self.lastTimer invalidate];
    }
    self.previousInputTime = (long long)time;
    self.lastTimer = self.currentTimer;
    //   ==============================================================================
}
上一篇 下一篇

猜你喜欢

热点阅读