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

相关文章

每天认识几个maven依赖(ActiveMQ+activemq-jaxb+activesoap+activespace+adarwin)

八、ActiveMQ 1、是什么? ActiveMQ 是一个开源的消息中间件(Message Broker),由 Apache 软件基金会开发和维护。它实现了 Java 消息服务(Java Message Service, JMS)规范,并支持多种消息传递协议,包括 AMQP、MQTT 和 OpenWire 等。 2、有什么用? 可靠性:ActiveMQ 提供了消息持久性和事务支持,确保消

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

uva 10061 How many zero's and how many digits ?(不同进制阶乘末尾几个0)+poj 1401

题意是求在base进制下的 n!的结果有几位数,末尾有几个0。 想起刚开始的时候做的一道10进制下的n阶乘末尾有几个零,以及之前有做过的一道n阶乘的位数。 当时都是在10进制下的。 10进制下的做法是: 1. n阶位数:直接 lg(n!)就是得数的位数。 2. n阶末尾0的个数:由于2 * 5 将会在得数中以0的形式存在,所以计算2或者计算5,由于因子中出现5必然出现2,所以直接一

【iOS】MVC模式

MVC模式 MVC模式MVC模式demo MVC模式 MVC模式全称为model(模型)view(视图)controller(控制器),他分为三个不同的层分别负责不同的职责。 View:该层用于存放视图,该层中我们可以对页面及控件进行布局。Model:模型一般都拥有很好的可复用性,在该层中,我们可以统一管理一些数据。Controlller:该层充当一个CPU的功能,即该应用程序

Spring Framework系统框架

序号表示的是学习顺序 IoC(控制反转)/DI(依赖注入): ioc:思想上是控制反转,spring提供了一个容器,称为IOC容器,用它来充当IOC思想中的外部。 我的理解就是spring把这些对象集中管理,放在容器中,这个容器就叫Ioc这些对象统称为Bean 用对象的时候不用new,直接外部提供(bean) 当外部的对象有关系的时候,IOC给它俩绑好(DI) DI和IO

使用JS/Jquery获得父窗口的几个方法(笔记)

<pre name="code" class="javascript">取父窗口的元素方法:$(selector, window.parent.document);那么你取父窗口的父窗口的元素就可以用:$(selector, window.parent.parent.document);如题: $(selector, window.top.document);//获得顶级窗口里面的元素 $(

Java基础回顾系列-第五天-高级编程之API类库

Java基础回顾系列-第五天-高级编程之API类库 Java基础类库StringBufferStringBuilderStringCharSequence接口AutoCloseable接口RuntimeSystemCleaner对象克隆 数字操作类Math数学计算类Random随机数生成类BigInteger/BigDecimal大数字操作类 日期操作类DateSimpleDateForma

Verybot的几个视频

1、Verybot的运动控制                 http://v.youku.com/v_show/id_XNjYxNjg4MTM2.html           2、Verybot比较初步的网络视频监控           http://v.youku.com/v_show/id_XNjYxNjkyMjg0.html           3、V

PHP原理之内存管理中难懂的几个点

PHP的内存管理, 分为俩大部分, 第一部分是PHP自身的内存管理, 这部分主要的内容就是引用计数, 写时复制, 等等面向应用的层面的管理. 而第二部分就是今天我要介绍的, zend_alloc中描写的关于PHP自身的内存管理, 包括它是如何管理可用内存, 如何分配内存等. 另外, 为什么要写这个呢, 因为之前并没有任何资料来介绍PHP内存管理中使用的策略, 数据结构, 或者算法. 而在我们

php中json_decode()和json_encode()

1.json_decode() json_decode (PHP 5 >= 5.2.0, PECL json >= 1.2.0) json_decode — 对 JSON 格式的字符串进行编码 说明 mixed json_decode ( string $json [, bool $assoc ] ) 接受一个 JSON 格式的字符串并且把它转换为 PHP 变量 参数 json