这里我试图从我的URL
使用的base64中获取数据,shaa256用于授权Header,我只是试图在我的控制台中显示。它运作良好。但我需要转换为NSDictionary
并显示给我的UICollectionView
。我的数据有3个sections
,数据不同。每个部分有12-20个文件。
所以我的问题是:
1.Connection did receive response 2.Connection did receive data 3.connection didFailWithError 4.connectionDidFinishLoading
添加到我的代码中,或者不希望将这4种方法添加到我的代码中这是我的代码:
我用
之后将以下代码插入上面的代码NSString *str = [[NSString alloc] initWithData:returnData
encoding:NSUTF8StringEncoding];
NSError * error;
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:str
options: NSJSONReadingMutableContainers
error: &error];
NSLog(@"%@",json);
但是它没有用。如果对我的3个问题有任何有用的答案对我来说非常有用。我是ios的新手。帮助我。谢谢你提前!
答案 0 :(得分:1)
数据很可能是JSON而不是纯文本?因此,将响应直接转换为NSDictionary
:
// show loading indicators when you are fetching data
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
// hide loading indicators when you received a response
[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
if (connectionError) {
// Handle error
} else {
NSDictionary *jsonResults = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
NSLog(@"jsonResults: %@", jsonResults);
// reload your views
// [self.myCollectionView reloadData];
}
}];
要使具有3个部分的collectionView需要包含3个部分的NSArray,这3个数组中的每一个都将包含12-20个字典,其中包含将填充每个单元格的键和值。
NSArray *sectionOne = @[@{@"Section":@"1", @"Object":@"1"}, @{@"Section":@"1", @"Object":@"2"}];
NSArray *sectionTwo = @[@{@"Section":@"2", @"Object":@"1"}, @{@"Section":@"2", @"Object":@"2"}];
NSArray *sectionThree = @[@{@"Section":@"3", @"Object":@"1"}, @{@"Section":@"3", @"Object":@"2"}];
NSArray *collectionData = @[sectionOne, sectionTwo, sectionThree];
NSLog(@"collectionData: %@", collectionData);