在下面的代码中,我从'NSURLResponse *'得到了警告,将不兼容的指针类型分配给'NSHTTPURLResponse *'。此方法是Sharekit的一部分。

带有警告的行是粗体/斜体:

    - (void)connection:(NSURLConnection *)aConnection didReceiveResponse:(NSURLResponse *)aResponse
{
    if (response)
        [response release];
    ***response = [aResponse retain];***
    [responseData setLength:0];
}

有人请帮忙!

谢谢!

最佳答案

对于编译器来说,aResponse[aResponse retain]的结果是NSURLResponse。但是我猜response是一个NSHTTPURLResponse。由于NSURLResponse是NSHTTPURLResponse的超类,因此您不仅可以直接进行分配,还可以使用强制类型转换来删除警告:

response = (NSHTTPURLResponse *)[aResponse retain];

关于ios - 从“NSURLResponse *”分配给“NSHTTPURLResponse *”的指针类型不兼容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7004083/

10-09 06:10