gpt4 book ai didi

iPhone ASIHTTP - 区分 API 调用?

转载 作者:太空狗 更新时间:2023-10-30 03:48:45 25 4
gpt4 key购买 nike

我目前有一个 View Controller ,它实现了 ASIHTTP 来处理 API 调用。

我的 View Controller 触发了 2 个单独的调用。我需要能够区分 -requestFinished(ASIHTTPRequest*) 请求方法中的 2 个调用,因此我可以相应地解析每个调用...

有这样的吗?

最佳答案

使用 userInfo 字段!这就是它的用途!

一个 ASIHTTPRequest(或一个 ASIFormDataRequest)对象有一个叫做 .userInfo 的属性,它可以接受一个 NSDictionary 和你想要的任何东西。所以我几乎总是去:

- (void) viewDidLoad { // or wherever
ASIHTTPRequest *req = [ASIHTTPRequest requestWithUrl:theUrl];
req.delegate = self;
req.userInfo = [NSDictionary dictionaryWithObject:@"initialRequest" forKey:@"type"];
[req startAsynchronous];
}

- (void)requestFinished:(ASIHTTPRequest *)request
{
if ([[request.userInfo valueForKey:@"type"] isEqualToString:@"initialRequest"]) {
// I know it's my "initialRequest" .req and not some other one!
// In here I might parse my JSON that the server replied with,
// assemble image URLs, and request them, with a userInfo
// field containing a dictionary with @"image" for the @"type", for instance.
}
}

在您在此 View Controller 中执行的每个不同的 ASIHTTPRequest 中,为键 @"type" 处的对象设置不同的值,现在您可以在 -requestFinished 中区分它们: 并适本地处理它们中的每一个。

如果您真的很喜欢,您可以携带在请求完成时有用的任何其他数据。例如,如果您延迟加载图像,您可以将一个句柄传递给要填充的 UIImageView,然后在加载图像数据后在 -requestFinished 中执行此操作!

关于iPhone ASIHTTP - 区分 API 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3780805/

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