gpt4 book ai didi

ios - 我如何让 ARC 保留一个委托(delegate)足够长的时间以便在一个 block 中调用它?

转载 作者:行者123 更新时间:2023-11-28 18:13:05 26 4
gpt4 key购买 nike

在下面的代码片段中,使用 ARC,我如何让委托(delegate)足够长的时间来调用这两个方法?

当前我得到一个编译器错误

Bad receiver type ' __autoreleasing id * '

我假设我需要做一些事情来让 ARC 保留委托(delegate)并在它完成调用后释放它,但不确定正确的做法是什么。

- (BOOL) requestFromURL:(NSString*)url withDelegate:( id<SimpleDataDelegate>*) delegate
{
[NSURLConnection sendAsynchronousRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://..."]]
queue:[NSOperationQueue mainQueue]
completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)
{
if ( error )
{
[delegate gotFailure:data];
}
else
{
[delegate gotResult:data];
}
}];

return YES;
}

最佳答案

我认为你的方法签名应该是

- (BOOL) requestFromURL:(NSString*)url withDelegate:(id<SimpleDataDelegate>) delegate

代替

- (BOOL) requestFromURL:(NSString*)url withDelegate:(id<SimpleDataDelegate>*) delegate

请注意第一个参数中第二个参数中缺少 *。试试看,看看错误是否消失了。如果没有,请报告。

关于ios - 我如何让 ARC 保留一个委托(delegate)足够长的时间以便在一个 block 中调用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12444229/

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