当前位置: 首页 > news >正文

个人网站开发与实现开题报告网络公司企业网站模板

个人网站开发与实现开题报告,网络公司企业网站模板,国内推广,网站建设套餐报价方案AFNetworking是一个轻量级的iOS网络通信类库#xff0c;继ASI类库不在更新之后开发者们有一套不错选择#xff1b; AFNetworking类库和使用教程: https://github.com/AFNetworking/AFNetworking 如果想深入研究有官方文档介绍:http://afnetworking.github.com/AFNetworking/ … AFNetworking是一个轻量级的iOS网络通信类库继ASI类库不在更新之后开发者们有一套不错选择 AFNetworking类库×××和使用教程: https://github.com/AFNetworking/AFNetworking 如果想深入研究有官方文档介绍:http://afnetworking.github.com/AFNetworking/ 在开源中国iOS客户端中关于AFNetworking类库的使用只用到了两个实例方法 (1)getPath:parameters:success:failure: (2)postPath:parameters:success:failure: 他们用法基本相同只是请求数据方式不同一种是Get请求和Post请求。Get是向服务器发索取数据的一种请求也就相当于查询信息功能不会修改类容Post是向服务器提交数据的一种请求影响数据内容两种方法定义 - (void)getPath:(NSString *)path parameters:(NSDictionary *)parameters success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure { NSURLRequest *request [self requestWithMethod:GET path:path parameters:parameters]; AFHTTPRequestOperation *operation [self HTTPRequestOperationWithRequest:request success:success failure:failure]; [self enqueueHTTPRequestOperation:operation]; }- (void)postPath:(NSString *)path parameters:(NSDictionary *)parameters success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure { NSURLRequest *request [self requestWithMethod:POST path:path parameters:parameters]; AFHTTPRequestOperation *operation [self HTTPRequestOperationWithRequest:request success:success failure:failure]; [self enqueueHTTPRequestOperation:operation]; } getPath:parameters:success:failure:方法在程序中使用举例: NewsView.m - (void)reload:(BOOL)noRefresh { //如果有网络连接 if ([Config Instance].isNetworkRunning) { if (isLoading || isLoadOver) { return; } if (!noRefresh) { allCount 0; } int pageIndex allCount/20; NSString *url; switch (self.catalog) { case 1: url [NSString stringWithFormat:%?catalog%dpageIndex%dpageSize%d, api_news_list, 1, pageIndex, 20]; break; case 2: url [NSString stringWithFormat:%?typelatestpageIndex%dpageSize%d, api_blog_list, pageIndex, 20]; break; case 3: url [NSString stringWithFormat:%?typerecommendpageIndex%dpageSize%d, api_blog_list, pageIndex, 20]; break; } [[AFOSCClient sharedClient]getPath:url parameters:Nil success:^(AFHTTPRequestOperation *operation, id responseObject) { [Tool getOSCNotice2:operation.responseString]; isLoading NO; if (!noRefresh) { [self clear]; } try { NSMutableArray *newNews self.catalog 1 ? [Tool readStrNewsArray:operation.responseString andOld: news]: [Tool readStrUserBlogsArray:operation.responseString andOld: news]; int count [Tool isListOver2:operation.responseString]; allCount count; if (count 20) { isLoadOver YES; } [news addObjectsFromArray:newNews]; [self.tableNews reloadData]; [self doneLoadingTableViewData]; //如果是第一页 则缓存下来 if (news.count 20) { [Tool saveCache:5 andID:self.catalog andString:operation.responseString]; } } catch (NSException *exception) { [NdUncaughtExceptionHandler TakeException:exception]; } finally { [self doneLoadingTableViewData]; } } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(新闻列表获取出错); //如果是刷新 [self doneLoadingTableViewData]; if ([Config Instance].isNetworkRunning NO) { return; } isLoading NO; if ([Config Instance].isNetworkRunning) { [Tool ToastNotification:错误 网络无连接 andView:self.view andLoading:NO andIsBottom:NO]; } }]; isLoading YES; [self.tableNews reloadData]; } //如果没有网络连接 else { NSString *value [Tool getCache:5 andID:self.catalog]; if (value) { NSMutableArray *newNews [Tool readStrNewsArray:value andOld:news]; [self.tableNews reloadData]; isLoadOver YES; [news addObjectsFromArray:newNews]; [self.tableNews reloadData]; [self doneLoadingTableViewData]; } } } 分析一下这里面的代码 首先是做一个网络连接判断在开源中国iOS客户端学习——(六)网络连接检测一文中介绍了作者并不是用这种方法来判断而是使用getPath:parameters:success:failure:来判断网络的连接方法使用AFHTTPRequestOperation和“PATCH”请求HTTP客户端操作队列使用到了block块(iOS 4.0特性)URL请求成功执行success块里操作这里面block块没有返回值接受两个参数创建请求操作和响应数据请求URL请求失败执行failure里面的方法这个block块里仍没有返回值接受两个参数创建请求操作和NSError对象描述网络或解析错误状况 在 if()中的方法[Config Instance].isNetworkRunningYES的,如果程序加载或者已经加载完毕什么也不返回如果程序没有加载数据将数据列表数量显示为0接下来是在switch()中根据使用者选择设置不同API接口(下图)然后就是解析显示数据信息显示在视图中    在AFNetwork 文件夹中作者自己添加了一个AFOSCClient类该类继承AFHTTPClient又设计了一个sharedClient的类方法从返回的结果可以推测出它是通过API请求返回json类型的数据具体什么作用还没看出来 [Tool getOSCNotice2:operation.responseString];是封装在在Tool类中的解析获取的XML的文件 URL请求成功还做了一个程序异常处理防止请求数据过成功程序异常崩溃  关于try catch finally异常处理的使用 try { //执行的代码其中可能有异常。一旦发现异常则立即跳到catch执行。否则不会执行catch里面的内容 } catch { //除非try里面执行代码发生了异常否则这里的代码不会执行 } finally { //不管什么情况都会执行包括try catch 里面用了return ,可以理解为只要执行了try或者catch就一定会执行 finally } 如果URL请求的数据出错则反应网络不连通数据不能加载则弹出GCDiscreetNotificationView提示视图  提示网络错误 postPath:parameters:success:failure:方法在程序中使用举例: FriendsView.m -(void)reload:(BOOL)noRefresh { if (isLoadOver) { [self doneLoadingTableViewData]; return; } [[AFOSCClient sharedClient] postPath:api_friends_list parameters:[NSDictionary dictionaryWithObjectsAndKeys:segement.selectedSegmentIndex 0 ? 1 : 0,relation, [NSString stringWithFormat:%d, friends.count/20],pageIndex, 20,pageSize, [NSString stringWithFormat:%d, [Config Instance].getUID],uid,nil] success:^(AFHTTPRequestOperation *operation, id responseObject) { if (!noRefresh) { [self clear]; } [self doneLoadingTableViewData]; isLoading NO; NSString *response operation.responseString; [Tool getOSCNotice2:response]; try { TBXML *xml [[TBXML alloc] initWithXMLString:response error:nil]; TBXMLElement *root xml.rootXMLElement; //显示 TBXMLElement *_friends [TBXML childElementNamed:friends parentElement:root]; if (!_friends) { isLoadOver YES; [self.tableFriends reloadData]; return; } TBXMLElement *first [TBXML childElementNamed:friend parentElement:_friends]; if (first nil) { [self.tableFriends reloadData]; isLoadOver YES; return; } NSMutableArray *newFriends [[NSMutableArray alloc] initWithCapacity:20]; TBXMLElement *name [TBXML childElementNamed:name parentElement:first]; TBXMLElement *userid [TBXML childElementNamed:userid parentElement:first]; TBXMLElement *portrait [TBXML childElementNamed:portrait parentElement:first]; TBXMLElement *expertise [TBXML childElementNamed:expertise parentElement:first]; TBXMLElement *gender [TBXML childElementNamed:gender parentElement:first]; Friend *f [[Friend alloc] initWithParameters:[TBXML textForElement:name] andUID:[[TBXML textForElement:userid] intValue] andPortrait:[TBXML textForElement:portrait] andExpertise:[TBXML textForElement:expertise] andMale:[[TBXML textForElement:gender] intValue] 1]; if (![Tool isRepeatFriend: friends andFriend:f]) { [newFriends addObject:f]; } while (first) { first [TBXML nextSiblingNamed:friend searchFromElement:first]; if (first) { name [TBXML childElementNamed:name parentElement:first]; userid [TBXML childElementNamed:userid parentElement:first]; portrait [TBXML childElementNamed:portrait parentElement:first]; expertise [TBXML childElementNamed:expertise parentElement:first]; gender [TBXML childElementNamed:gender parentElement:first]; f [[Friend alloc] initWithParameters:[TBXML textForElement:name] andUID:[[TBXML textForElement:userid] intValue] andPortrait:[TBXML textForElement:portrait] andExpertise:[TBXML textForElement:expertise] andMale:[[TBXML textForElement:gender] intValue] 1]; if (![Tool isRepeatFriend:friends andFriend:f]) { [newFriends addObject:f]; } } else break; } if (newFriends.count 20) { isLoadOver YES; } [friends addObjectsFromArray:newFriends]; [self.tableFriends reloadData]; } catch (NSException *exception) { [NdUncaughtExceptionHandler TakeException:exception]; } finally { [self doneLoadingTableViewData]; } } failure:^(AFHTTPRequestOperation *operation, NSError *error) { NSLog(好友列表获取出错); [self doneLoadingTableViewData]; isLoading NO; if ([Config Instance].isNetworkRunning) { [Tool ToastNotification:错误 网络无连接 andView:self.view andLoading:NO andIsBottom:NO]; } }]; isLoading YES; [self.tableFriends reloadData]; } 这个方法和getPath:parameters:success:failure:不同的在于请求方式是POST请求可以向服务器里提交数据 转载于:https://blog.51cto.com/duxinfeng/1208682
http://www.huolong8.cn/news/350149/

相关文章:

  • 佛山 网站建设 骏域wordpress英文变成中文
  • 简述网站的建设方案ps做网站连接
  • 广东网站建设联系什么是网页设计师
  • 网站如何建设与安全管理制度平台经济概念股票龙头
  • 长沙长沙建设网站手机端首页设计
  • 科技网站首页爱站网综合查询
  • app开发网站开发宁波十大口碑最好的装饰公司
  • 建站快车的优点wordpress 手机布局
  • 全网响应式网站国内网站空间 优帮云
  • 网站制作模板过程寿光人才网招聘网
  • 淘宝网站的建设目的河南网络营销外包
  • 建设网站的报告e盘网站建设
  • 你的网站尚未进行备案crm财务系统
  • 网站建设及照片使用保密协议小程序平台哪个好
  • 自适应的网站中国加工网招聘信息
  • 网站怎么做uc整合冯耀宗seo博客
  • 建设外贸网站多少钱做网站的图片字虚
  • 制作网站专业公司吗网站域名是什么意思
  • 网站前台后台商务网站创建
  • 南宁网站seo推广公司wordpress恶意代码在线检测
  • 站点推广促销青岛网站seo技巧
  • 陕西省住房和城乡建设部网站html5餐饮美食订餐微官网wap手机网站模板整站下载
  • 建设网站企业邮箱昆明网络推广公司报价
  • 做国外网站关键词用写百度知道下载安装
  • 一个彩票网站建设建设景区网站要有的内容
  • 做推广的网站有哪些房产网网站
  • 网站推广信息怎么做北京住房和城乡建设部网站官网
  • 做一个免费网站的流程兰州网站seo公司
  • 做任务的正规网站网站开发职业认知小结
  • 厦门市市场开发建设服务中心网站桥的设计网站建设