gpt4 book ai didi

objective-c - 使 stringWithContentsOfURL 异步 - 安全吗?

转载 作者:可可西里 更新时间:2023-11-01 03:35:54 24 4
gpt4 key购买 nike

我试图使 -[NSString stringWithContentsOfURL:encoding:error:] 异步,通过从后台线程异步运行它:

__block NSString *result;
dispatch_queue_t currentQueue = dispatch_get_current_queue();

void (^doneBlock)(void) = ^{
printf("done! %s",[result UTF8String]);
};

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,
(unsigned long)NULL), ^(void) {
result = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.google.com/"] encoding:NSUTF8StringEncoding error:nil];
dispatch_sync(currentQueue, ^{
doneBlock();
});
});

它工作正常,最重要的是,它是异步的。

我的问题是这样做是否安全,或者是否会出现任何线程问题等?

提前致谢:)

最佳答案

那应该是安全的,但为什么要重新发明轮子呢?

NSURLRequest *req = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com"]];
[NSURLConnection sendAsynchronousRequest:req queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
// etc
}];

关于objective-c - 使 stringWithContentsOfURL 异步 - 安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11621269/

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