gpt4 book ai didi

ios - AFNetworking:getPath:参数方法导致问题

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

我正在尝试使用 AFNetworking(出色的框架)向我的 Web 服务发出 GET 请求。这是请求的代码:

   AFHTTPClient *httpClient = [[AFHTTPClient alloc]initWithBaseURL:[NSURL URLWithString:@"http://mywebservice.com/service/"]];

[httpClient setParameterEncoding:AFJSONParameterEncoding];
[httpClient registerHTTPOperationClass:[AFJSONRequestOperation class]];

NSMutableURLRequest *request = [httpClient getPath:@"http://mywebservice.com/service/contacts"
parameters:@{@"accessID":self.accessId, @"name":contactName}
success:^(AFHTTPRequestOperation *operation, id responseObject) {
//Success code
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
//Error code
}];

这会导致出现以下问题(指向我的 NSMutableURLRequest 实例):使用不兼容类型“void”的表达式初始化“NSMutableURLRequest *__strong”

我不知道是什么原因造成的,所以任何帮助将不胜感激。

最佳答案

AFHTTPClient 上的这个方法:

-(void)getPath:parameters:success:failure:

不返回任何内容 (void) 而您正试图将其分配给一个变量。

NSMutableURLRequest *request = [httpClient getPath:....

这是我们解释您的错误消息所需的全部信息:

Initializing 'NSMutableURLRequest *__strong' with an expression of incompatible type 'void'

您声明了一个变量,request,并将其键入为 NSMutableURLRequest *。对于内存管理,ARC 添加了内存语义 __strong。变量的完整类型是 `NSMutableURLRequest *__strong。然后,您尝试将 = 方法 -(void)getPath:parameters:success:failure: 的结果分配给该变量。该方法不返回任何内容,也称为 voidvoidNSMutableRequest * 不是同一类型,因此编译器会提示上述错误消息。

当您调用此方法时,它实际上开始执行请求。结果作为参数提供给完成或失败 block ,它们在 HTTP 请求完成时执行。这将是执行您尝试发送的 HTTP 请求的正确方法:

[httpClient getPath:@"contacts"
parameters:@{@"accessID":self.accessId, @"name":contactName}
success:^(AFHTTPRequestOperation *operation, id responseObject) {
//Success code
}
failure:^(AFHTTPRequestOperation *operation, NSError *error) {
//Error code
}];

注意 this 是如何不分配给变量的。此外,在 AFHTTPClient 上使用这些路径方法时,我们不需要包含 baseURL,只需要包含我们想要附加到它的路径部分。

关于ios - AFNetworking:getPath:参数方法导致问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16003925/

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