博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS开发之AFNetworking
阅读量:6239 次
发布时间:2019-06-22

本文共 3927 字,大约阅读时间需要 13 分钟。

hot3.png

下面是一个AFNetworking使用的小例子:

1.创建FKBooksController类 : UITableViewController

#import 
@interface FKBooksController : UITableViewController@property (nonatomic, strong) NSDictionary* selectedAuthor;@end
#import "FKBooksController.h"#import "FKAppDelegate.h"@interface FKBooksController (){	NSArray* books;	FKAppDelegate* appDelegate;}@end@implementation FKBooksController- (void)viewDidLoad{    [super viewDidLoad];	appDelegate = [UIApplication sharedApplication].delegate;		NSString* url = @"http://192.168.1.88:8888/AFNetworkingServer/books.json";	self.navigationItem.title = [NSString stringWithFormat:@"%@的图书"		, [self.selectedAuthor objectForKey:@"name"]];	// 使用NSDictionary封装请求参数	NSDictionary *parameters = @{@"authorId":		[self.selectedAuthor objectForKey:@"id"]};	// 使用AFHTTPRequestOperationManager发送GET请求	[appDelegate.manager POST:url parameters:parameters		// 获取服务器响应成功时激发的代码块		success:^(AFHTTPRequestOperation *operation, id responseObject)		{			// 将服务器响应的JSON数据转换为Objective-C对象,赋值给books属性			books = responseObject;			// 重新加载表格数据			[self.tableView reloadData];	 	}		// 获取服务器响应失败时激发的代码块		failure:^(AFHTTPRequestOperation *operation, NSError *error)		{			NSLog(@"获取图书信息出现错误: %@", error);		}];}- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{	return books.count;}- (UITableViewCell *)tableView:(UITableView *)tableView		 cellForRowAtIndexPath:(NSIndexPath *)indexPath{	// 根据动态单元格原型的ID来获取可重用单元格	UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:							 @"bookCell" forIndexPath:indexPath];	// 获取当前行号在books中对应的数据	NSDictionary* book = [books objectAtIndex:indexPath.row];	// 获取单元格中3个控件,并为3个控件设置显示文本	UILabel* titleLable = (UILabel*)[cell viewWithTag:1];	titleLable.text = [book objectForKey:@"title"];	UILabel* authorLable = (UILabel*)[cell viewWithTag:2];	authorLable.text = [book objectForKey:@"author"];	UILabel* remarkLabel = (UILabel*)[cell viewWithTag:3];	remarkLabel.text = [book objectForKey:@"remark"];	return cell;}@end

2.创建FKAuthorsController类 : UITableViewController,导入FKBooksController和FKAppDelegate

#import "FKAuthorsController.h"#import "FKBooksController.h"#import "FKAppDelegate.h"@interface FKAuthorsController (){	NSArray* authors;	FKAppDelegate* appDelegate;}@end@implementation FKAuthorsController- (void)viewDidLoad{	[super viewDidLoad];	appDelegate = [UIApplication sharedApplication].delegate;	NSString* url = @"http://192.168.1.88:8888/AFNetworkingServer/authors.json";	// 使用AFHTTPRequestOperationManager发送GET请求	[appDelegate.manager GET:url parameters:nil		// 获取服务器响应成功时激发的代码块		success:^(AFHTTPRequestOperation *operation, id responseObject)		{			// 将服务器响应的JSON数据转换为Objective-C对象,赋值给authors属性			authors = responseObject;			// 重新加载表格数据			[self.tableView reloadData];		}		// 获取服务器响应失败时激发的代码块		failure:^(AFHTTPRequestOperation *operation, NSError *error)		{			NSLog(@"获取作者信息出现错误: %@", error);		}];}- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{	UITableViewCell* cell = (UITableViewCell*)sender;	// 获取激发跳转的单元格所在的NSIndexPath	NSIndexPath* indexPath = [self.tableView indexPathForCell:cell];	// 获取即将跳转到的目标视图控制器	FKBooksController* booksController = (FKBooksController*)		segue.destinationViewController;	// 将用户选中的单元格的作者信息传给目标视图控制器	booksController.selectedAuthor = [authors objectAtIndex:indexPath.row];}// --------下面两个方法根据authors集合的元素来显示表格数据---------- (NSInteger)tableView:(UITableView *)tableView 	numberOfRowsInSection:(NSInteger)section{	return authors.count;}- (UITableViewCell *)tableView:(UITableView *)tableView	cellForRowAtIndexPath:(NSIndexPath *)indexPath{	UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:		@"authorCell" forIndexPath:indexPath];	NSDictionary* dict = [authors objectAtIndex:indexPath.row];	cell.textLabel.text = [dict objectForKey:@"name"];	cell.detailTextLabel.text = [dict objectForKey:@"desc"];	return cell;}@end

转载于:https://my.oschina.net/khakiloveyty/blog/397028

你可能感兴趣的文章
我要学习
查看>>
ESXi命令行升级命令
查看>>
Linux 下编译安装 ffmpeg
查看>>
10个php中的$_SERVER函数
查看>>
美团实时计算平台实践与应用
查看>>
[翻译-Shiro]-10分钟教会你Apache Shiro
查看>>
糗事百科客户端
查看>>
ZUUIRevealController
查看>>
开源 java CMS - FreeCMS2.0发布。
查看>>
android handler 如何规避内存泄漏
查看>>
使用K个数字(< 10)组成和为N的组合
查看>>
python good link
查看>>
关于SQL的
查看>>
Ubuntu下安装yii
查看>>
[Android]让RemoteControlClient显示Music Album
查看>>
01-UI基础-03UIImageView
查看>>
JSP页面ajax提交登录数据demo
查看>>
软件自动化测试框架STAF
查看>>
Hadoop 多表连接
查看>>
使用maven下载jar包,使用ant打包。yqxt项目的安装。
查看>>