gpt4 book ai didi

iphone - 如何知道 NSData 的 initWithContentsOfURL 何时完成加载。

转载 作者:行者123 更新时间:2023-12-03 19:38:05 25 4
gpt4 key购买 nike

我正在从 xml 和图像加载一些文本,该图像的加载时间比 xml 长,但我想同时显示它们。

我正在使用加载图像

NSData *mydata = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:imgLink]];

如何设置一个回调函数,让我知道 mydata 有图像,以便我可以将图像和文本添加到 View 中?

谢谢

最佳答案

您必须使用 NSURLConnection。这相当简单,但比 NSData 方法更复杂。

首先,创建一个 NSURLConnection:

NSMutableData *receivedData;

NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:imgLink]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:60.0];

NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];

if (theConnection) {
receivedData=[[NSMutableData data] retain];
} else {
// inform the user that the download could not be made
}

现在,将 添加到类的 header 并实现以下方法:

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data;
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error;
- (void)connectionDidFinishLoading:(NSURLConnection *)connection;

第一个应该附加数据,如下所示,最后一个应该创建并显示图像。

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data;
{
// append the new data to the receivedData
// receivedData is declared as a method instance elsewhere
[receivedData appendData:data];
}

参见this document了解更多详情。

关于iphone - 如何知道 NSData 的 initWithContentsOfURL 何时完成加载。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2149929/

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