gpt4 book ai didi

ios - 无论如何,异步 NSURLconnection 是否有助于实时更新或向 iOS 应用程序中的服务器发送持续请求?

转载 作者:行者123 更新时间:2023-11-28 19:20:51 24 4
gpt4 key购买 nike

我对 objective-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”时,它无法在文件更改时进行实时更新,它仍然在文件中记录旧值。

最佳答案

你不应该自己调用 viewWillAppear:,尤其是因为它需要调用 [super viewWillAppear:] 来做你不知道的事情。我可以根据经验告诉您,自己调用这些 View Controller 方法会导致非常难以调试的奇怪错误。

因此,将您的 URL 连接处理代码移动到一个单独的方法中,您可以使用计时器调用该方法,并且如果需要,您还可以在 viewWillAppear: 中调用该方法。

关于ios - 无论如何,异步 NSURLconnection 是否有助于实时更新或向 iOS 应用程序中的服务器发送持续请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8977296/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com