zoukankan      html  css  js  c++  java
  • iOS 封装数据请求,解析数据(异步)

    .h文件声明方法

    #import<Foundation/Foundation.h>

    @interface ZHTTPManager : NSObject<NSURLConnectionDataDelegate,NSURLConnectionDelegate>

    + (void)startAsynchourRequestWithUrlString:(NSString *)URLString

                                                         params:(NSDictionary *)params

                                          completionHandler:(void(^)(BOOL sucess,id content))completion;

     @end

    .m文件实现

    #import"ZHTTPManager.h"

     

    @interfaceZHTTPManager()

     

    {

        NSMutableData *_responseData;

        void(^_completionHandler)(BOOL success,id content);

    }

    - (void)startAsynchourRequestWithUrlString:(NSString *)URLString params:(NSDictionary *)params completionHandler:(void (^)(BOOL, id))completion;

     

    @property (copy,nonatomic) void (^completionHandler)(BOOL success,id content);

     

    @end

     

     

    @implementation ZHTTPManager

     

    - (id)init

    {

        self = [super init];

        if (self)

        {

            _responseData = [[NSMutableDataalloc]init];

        }

        returnself;

    }

     

    - (void)startAsynchourRequestWithUrlString:(NSString *)URLString params:(NSDictionary *)params completionHandler:(void (^)(BOOL, id))completion

    {

        self.completionHandler = completion;

        NSMutableURLRequest *request = [NSMutableURLRequestrequestWithURL:[NSURLURLWithString:URLString]];

        request.HTTPMethod = @"POST";

        request.timeoutInterval = 10.0;

        NSMutableString *postString = [NSMutableStringstringWithFormat:@"g=ApiGGC"];

        for (NSString *key in params)

        {

            [postString appendFormat:@"&%@=%@",key,[params objectForKey:key]];

        }

        request.HTTPBody = [postString dataUsingEncoding:NSUTF8StringEncoding];

        [NSURLConnectionconnectionWithRequest:request delegate:self];

    }

     

    + (void)startAsynchourRequestWithUrlString:(NSString *)URLString params:(NSDictionary *)params completionHandler:(void (^)(BOOL, id))completion

    {

        if (URLString.length == 0)

        {

            return;

        }

        ZHTTPManager  *manager = [[[ZHTTPManager alloc]init] autorelease];;

        [manager startAsynchourRequestWithUrlString:URLString params:params completionHandler:(void (^)(BOOL, id))completion];

    }

    + (id)JSONObjectWithData:(NSData *)data

    {

        if (!data)

        {

            return nil;

        }

        NSError *error = nil;

        id object = [NSJSONSerializationJSONObjectWithData:data

                                                    options:NSJSONReadingMutableLeaves

                                                      error:&error];

        if (error)

        {

            NSLog(@"errormessage%@",[error localizedDescription]);

        }

        return object;

    }

    #pragmamark - <NSURLConnectionDataDelegate,NSURLConnectionDelegate>

     

    - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data

    {

        [_responseData appendData:data];

    }

    - (void)connectionDidFinishLoading:(NSURLConnection *)connection

    {

        NSDictionary *dict = [ZHTTPManagerJSONObjectWithData:_responseData];

        BOOL sucess = [dict[@"code"] integerValue] == 1 ? YES : NO;

        _completionHandler(sucess,dict[@"content"]);

        _responseData.length = 0;

    }

    - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error

    {

        _completionHandler(NO,[error localizedDescription]);

    }

    @end

    在其他controller导入可直接调用此方法,

     

  • 相关阅读:
    贴图叠加算法
    Tetrahedron based light probe interpolation(基于四面体的Light Probe插值)
    PS脚本博客
    【Unity优化】资源管理系列03:AssetBundle 基本原理
    【Unity优化】资源管理系列02:Resources 最佳实践
    【Unity优化】资源管理系列01:Assets, Objects and serialization
    【Unity优化】DrawCall与Batch
    【Unity3D技术文档翻译】第1.9篇 使用 Unity AssetBundle Browser tool (AssetBundle系列完结)
    【Unity3D技术文档翻译】第1.8篇 AssetBundles 问题及解决方法
    【Unity3D技术文档翻译】第1.7篇 AssetBundles 补丁更新
  • 原文地址:https://www.cnblogs.com/qianyindichang/p/3779835.html
Copyright © 2011-2022 走看看