-2

我用谷歌搜索了很多次,有很多不同的措辞,但似乎没有什么能完全符合我的要求。

我想要做的是将图像和标题下载到带有 JSON 的 NSArray 中。我不想保存这些图像,只在 UICollectionView 中显示它们。能够使用相同的 URL 下载多个图像会容易得多,而不仅仅是每个 URL 1 个图像。

由于我是一个相当新手的程序员,我只知道如何使用 NSURLRequest。这是我的一些代码:

NSString *getDataURL = [[NSString stringWithFormat:@"URL and a couple of perams", var, var2] stringByReplacingOccurencesOfString:@" " withString:@"%20"];
NSURLRequest *req = [NSURLRequest requestWithURL:[NSURL URLWithString:getDataURL]];
[[NSURLConnection alloc] initWithRequest:req delegate:self];

然后稍后在 connectionDidFinishLoading: 方法中:

NSArray *dataArray = [NSJSONSerialization JSONObjectWithData:data options:nil error:nil]; // variable 'data' is an NSMutableData declared in .h

请告知该怎么做,或者即使它是可能的!

提前致谢!

4

2 回答 2

0

我不确定我是否完全理解您要问的内容,但如果您的目标是使用 JSON 获取图像/标题列表,请尝试使用 AFNetworking

https://github.com/AFNetworking/AFNetworking

于 2013-07-20T03:19:46.690 回答
0

你可以这样做:

-(void) loadImageAtURL:(NSString*)url {
    NSURL *requestURL = [[NSURL alloc] initWithString:url];
    NSURLRequest *request = [[NSURLRequest alloc] initWithURL:requestURL cachePolicy:nil timeoutInterval:45.0];
    connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
    imageData = [[[NSMutableData alloc] init] retain];
}

并在 NSURL 委托方法中处理响应,例如:

- (void)connection:(NSURLConnection *)connection
    didReceiveData:(NSData *)data {
    [imageData appendData:data];
}


- (void)connectionDidFinishLoading:(NSURLConnection *)aConnection {

    // RELEASE THE CONNECTION
    [connection release];

    // CREATE NEW UIIMAGE FROM THE DATA
    UIImage *image = [[[UIImage alloc] initWithData:imageData] retain];
    [imageData release];

    [yourImageView setImage:image]; 

    [image release];

}



- (void)connection:(NSURLConnection *)connection
  didFailWithError:(NSError *)error {
    // Handle error
}

希望这些方法能给你指导如何进行事情。您根据 API 响应进行 JSON 处理,didReceiveData:(NSData *)data并在稍后使用该数据connectionDidFinishLoading:

于 2013-07-20T05:24:19.587 回答