IOS上的几个类库:MBProgressHUD、ASIHttpRequest、JSON Framework和Flurry

本文主要是介绍IOS上的几个类库:MBProgressHUD、ASIHttpRequest、JSON Framework和Flurry,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上述的四个类库我都试验过,确实还不错。每个库的简单介绍请参见:10款IOS高效开发必备的Objective-C类库(http://mobile.csdn.net/a/20110317/294018.html)

    1、MBProgressHUD:https://github.com/jdg/MBProgressHUD。

HUD = [[MBProgressHUD alloc]initWithView:self.navigationController.view];

[self.navigationController.view addSubview:HUD];

HUD.delegate =self;

HUD.labelText =@"Loading";

HUD.detailsLabelText =@"updating data";

[HUD showWhileExecuting:@selector(myTask) onTarget:self withObject:nil animated:YES];

    以上是一个最简单的实现方法,MBProgressHUD对象可以设置委托,委托方法为hudWasHidden,可以在此方法中remove掉之前创建的变量HUD。

HUD.mode =MBProgressHUDModeDeterminate;设置MBProgressHUD的模式,MBProgressHUD有三种模式,分别为:

MBProgressHUDModeIndeterminate,(UIActivityIndicatorView,default)

MBProgressHUDModeDeterminate,(MBRoundProgressView)

MBProgressHUDModeCustomView

在MBProgressHUDModeDeterminate模式下,可以设置HUD.progress来控制进度。

在MBProgressHUDModeCustomView模式下,可以设置HUD.customView来显示图片,图片大小为37*37时显示效果最好。

MBProgressHUD对象可以自由的在这三种模式之间变换,这样就可以在不同的阶段有不同的呈现形式。

          当然还有很多的属性可以设置,以达到不同的目的,具体参见源代码。简单用法参见:http://auauau.iteye.com/blog/575415或者http://blog.csdn.net/tangaowen/article/details/6528136。

    2、ASIHttpRequest:http://allseeing-i.com/ASIHTTPRequest/或者https://github.com/pokeb/asi-http-request/tree

    最简单的连接方式:

NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"]];//此处貌似必须加http

[self setRequest:[ASIHTTPRequest requestWithURL:url]];

[request addRequestHeader:@"User-Agent"value:@"ASIHTTPRequest"];

[request startSynchronous];

//其中request为ASIHTTPRequest对象


ASIHTTPRequest中几个比较有用的参数:

url:request请求中的url

requestMethod:提交的方式,默认为GET

postBody:以POST方式提交时所带的数据

responseHeaders:返回的response的Headers

error:错误,可参见ASINetworkErrorType(在ASIHTTPRequest类中)

responseString:这是一个方法,获得返回的结果

。。。。。。。。


    request可以设置代理:[request setDelegate:***];

    还可以设置进度条:[request setDownloadProgressDelegate:***];


    使用ASINetworkQueue可以实现多线程的方式进行数据的获取。使用方法与NSOperationQueue类似.

    使用ASIFormDataRequest进行POST方式提交,使用setPostValue增加post的值,当然你也可以用addPostValue。

    

    3、JSON Framework:参见我的文章(http://blog.csdn.net/xiaoguan2008/article/details/6732683)

    4、Flurry:一个很强大的统计工具,http://www.flurry.com/product/analytics/index.html

    使用起来也很简单,首先在Flurry网站上进行注册(https://dev.flurry.com/secure/login.do),成功后new application,此时会有相应的sdk给你下载。下载后直接加入到你的工程中即可。接下来是使用:

In your Application Delegate:

  • Import FlurryAnalytics and inside "applicationDidFinishLaunching:" add: [FlurryAnalytics startSession:@"PTVUJQUHI6MUMJP22GQK"];

    #import "FlurryAnalytics.h"
    - (void)applicationDidFinishLaunching:(UIApplication *)application {[FlurryAnalytics startSession:@"PTVUJQUHI6MUMJP22GQK"];//每个应用程序的唯一标示,flurry生成的。//your code
    }
You can use the following methods to report additional data.

   Tracking User Behavior

  • [FlurryAnalytics logEvent:@"EVENT_NAME"];
  • [FlurryAnalytics logEvent:@"EVENT_NAME" withParameters:YOUR_NSDictionary];
    An example NSDictionary to use with this method could be:
    NSDictionary *dictionary = 
    [NSDictionary dictionaryWithObjectsAndKeys:@"your dynamic parameter value", 
    @"your dynamic parameter name", 
    nil];
  • [FlurryAnalytics logEvent:@"EVENT_NAME" timed:YES];
  • [FlurryAnalytics logEvent:@"EVENT_NAME" withParameters:YOUR_NSDictionary timed:YES];
  • [FlurryAnalytics endTimedEvent:@"EVENT_NAME" withParameters:YOUR_NSDictionary];
  • [FlurryAnalytics logAllPageViews:navigationController];
  • [FlurryAnalytics logPageView];
  • Tracking Application Errors
  • [FlurryAnalytics logError:@"ERROR_NAME" message:@"ERROR_MESSAGE" exception:e];
    Use this to log exceptions and/or errors that occur in your app. Flurry will report the first 10 errors that occur in each session. 
我们还可以使用flurry记录程序意外的crash信息,如下:

We recommend adding an uncaught exception listener to your application (if you don't already have one) and use logError to record any application crashes. Adding an uncaught exception listener is easy; you just need to create a function that looks like the following:

void uncaughtExceptionHandler(NSException *exception) {[FlurryAnalytics logError:@"Uncaught" message:@"Crash!" exception:exception];
}

You then need to register this function as an uncaught exception listener as follows:

- (void)applicationDidFinishLaunching:(UIApplication *)application { NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);[FlurryAnalytics startSession:@"PTVUJQUHI6MUMJP22GQK"];....
}

Note that you can name the function whatever you'd like and record whatever error information you'd like in the error name and event fields.

(以上flurry的英文文字及代码均来自flurry网站)。


这篇关于IOS上的几个类库:MBProgressHUD、ASIHttpRequest、JSON Framework和Flurry的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/688359

相关文章

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

JSON Web Token在登陆中的使用过程

《JSONWebToken在登陆中的使用过程》:本文主要介绍JSONWebToken在登陆中的使用过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录JWT 介绍微服务架构中的 JWT 使用结合微服务网关的 JWT 验证1. 用户登录,生成 JWT2. 自定义过滤

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

如何自定义Nginx JSON日志格式配置

《如何自定义NginxJSON日志格式配置》Nginx作为最流行的Web服务器之一,其灵活的日志配置能力允许我们根据需求定制日志格式,本文将详细介绍如何配置Nginx以JSON格式记录访问日志,这种... 目录前言为什么选择jsON格式日志?配置步骤详解1. 安装Nginx服务2. 自定义JSON日志格式各

python dict转换成json格式的实现

《pythondict转换成json格式的实现》本文主要介绍了pythondict转换成json格式的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下... 一开始你变成字典格式data = [ { 'a' : 1, 'b' : 2, 'c编程' : 3,

Java实现XML与JSON的互相转换详解

《Java实现XML与JSON的互相转换详解》这篇文章主要为大家详细介绍了如何使用Java实现XML与JSON的互相转换,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. XML转jsON1.1 代码目的1.2 代码实现2. JSON转XML3. JSON转XML并输出成指定的

Jackson库进行JSON 序列化时遇到了无限递归(Infinite Recursion)的问题及解决方案

《Jackson库进行JSON序列化时遇到了无限递归(InfiniteRecursion)的问题及解决方案》使用Jackson库进行JSON序列化时遇到了无限递归(InfiniteRecursi... 目录解决方案‌1. 使用 @jsonIgnore 忽略一个方向的引用2. 使用 @JsonManagedR

SpringBoot接收JSON类型的参数方式

《SpringBoot接收JSON类型的参数方式》:本文主要介绍SpringBoot接收JSON类型的参数方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、jsON二、代码准备三、Apifox操作总结一、JSON在学习前端技术时,我们有讲到过JSON,而在

基于.NET编写工具类解决JSON乱码问题

《基于.NET编写工具类解决JSON乱码问题》在开发过程中,我们经常会遇到JSON数据处理的问题,尤其是在数据传输和解析过程中,很容易出现编码错误导致的乱码问题,下面我们就来编写一个.NET工具类来解... 目录问题背景核心原理工具类实现使用示例总结在开发过程中,我们经常会遇到jsON数据处理的问题,尤其是