iOS疯狂详解之ASIHttpRequest的简单封装

iOS疯狂详解之SQlite数据库增删改查 // // SqLiteManager.h // MySqlite // // Created by long on 15/9/15. // Copyright (c) 2015年 WLong. All rights reserved. // #import #import "LanOuStudent.h" #import @interface SqLiteManager : NSO 阅读详情
//  iOS疯狂详解之ASIHttpRequest的简单封装
//  WLHTTPClient.h
//  WLWLListen
//
//  Created by long on 14-12-15.
//  Copyright (c) 2014年 WLong. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "ASIFormDataRequest.h"

@protocol WLHTTPClientDelegate<NSObject>
@optional
@end

@interface WLHTTPClient : NSObject

@property (nonatomic,assign) id<WLHTTPClientDelegate>delegate;

+ (WLHTTPClient *)sharedClient;


- (void)postInfoWithDelegate:(id<WLHTTPClientDelegate>)delegate
                  withMethod:(NSString *)method
                  withParams:(NSDictionary *)params
          withSuccuessMethod:(SEL )successMethod
            withFailedMethod:(SEL )failMethod;

@end


//
//  WLHTTPClient.m
//  WLVkoListen
//
//  Created by long on 14-12-15.
//  Copyright (c) 2014年 WLong. All rights reserved.
//

#import "WLHTTPClient.h"

#define SuppressPerformSelectorLeakWarning(Stuff) \
do { \
_Pragma("clang diagnostic push") \
_Pragma("clang diagnostic ignored \"-Warc-performSelector-leaks\"") \
Stuff; \
_Pragma("clang diagnostic pop") \
} while (0)


@implementation WLHTTPClient

+ (WLHTTPClient *)sharedClient
{
    static WLHTTPClient *_sharedClient = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        _sharedClient = [[WLHTTPClient alloc]init];
        
    });
    
    return _sharedClient;
    
}

- (void)postInfoWithDelegate:(id<WLHTTPClientDelegate>)delegate
                  withMethod:(NSString *)method
                  withParams:(NSDictionary *)params
          withSuccuessMethod:(SEL )successMethod
            withFailedMethod:(SEL )failMethod
{
    
    NSString *urlStr = [NSString stringWithFormat:@"%@%@",baseHttpUrl,method];
    
    __weak ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:urlStr]];
    
    [request setRequestMethod:@"POST"];
    
    for (int i = 0;  i < [params allKeys].count; i++) {
        [request addPostValue:params[[params allKeys][i]] forKey:[params allKeys][i]];
    }
    
    [request setCompletionBlock:^{
        
        NSData *jsonData = request.responseData;
        
        id result = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:nil];
        
        SuppressPerformSelectorLeakWarning(
                                           [delegate performSelector:successMethod withObject:result];
                                           );
        
    }];
    
    [request setFailedBlock:^{
        
        SuppressPerformSelectorLeakWarning(
                                           [delegate performSelector:failMethod withObject:@"网络连接失败,请检查您的网络连接或重试!"];
                                           );
    }];
    
    [request startAsynchronous];
    
    
}


@end


更多iOS疯狂详解:http://blog.youkuaiyun.com/wanglongblog

iOS疯狂详解之GCD卖火车票 @interface ViewController () { int _totalCount; // 火车票总票数 int _surplusCoynt; // 剩余票数 NSLock *_lock; // 互斥锁 } @end // 设置剩余票数 _surplusCoynt = 100; _lock = [[NSLock alloc] ini 阅读详情

相关推荐

从碰撞电离到雪崩击穿:Sentaurus仿真中的模型选择与验证艺术

本文深入探讨了Sentaurus TCAD中雪崩击穿模型的选取与验证方法,特别关注平行平面结的仿真实践。通过对比Chynoweth、van Overstraeten等主流模型的适用场景与精度差异,结合具体案例展示了从几何建模到边界条件设定的完整验证流程,并针对非理想因素提供了有效的补偿技术,助力工程师提升器件仿真的准确性与可靠性。

weixin_29074295的博客 591

iOS ASIHttpRequest 封装

ASIHttpRequest 封装// // HttpUtil.h // AshineDoctor // // Created by JiangYue on 15/2/6. // Copyright (c) 2015年 esuizhen. All rights reserved. // // 功能 :网络请求下载 // // 描述 :POST请求、文件下载、文件上传 //#import

小朴朴的博客 896

基于ZYNQ7020芯片(黑金开发板AX7020)之AXI-FULL DDR的PL与PS交互操作。

在该工程中我们使用了PS端的串口接收功能,PS端串口接收和发送分别有一个64字节的FIFO,但是因为串口接收阈值设置为16,所以固定接收16个字节数据后才会发生中断。此测试工程得到以前知识的总结和各大网友的支持,只希望可以为学习的你更进一步,大家一起学习才是真的开心。加油,国产芯片之路。

landyjzlai的博客 3189

对于ASIHTTPRequest的封装

#import #import "ASIFormDataRequest.h" typedef void(^RequestFinishedBlock)(id result); @interface NetService : NSObject +(ASIHTTPRequest*)requestWithURL:(NSString*)urlString params:(NSMutableDictio

richard_如风的专栏 2007

一份针对零基础学习AI Agent详细学习计划

以下是针对零基础学习者制定的AI Agent详细学习计划,结合最新行业动态和实用资源推荐,帮助你从入门到进阶系统掌握核心技能

sexy19910923的博客 1903

通达信波段交易公式实战:如何用副图指标精准捕捉买卖点(附完整源码)

本文深入解析通达信波段交易副图指标的构建与应用,提供完整源码实现,帮助投资者精准捕捉买卖点。通过趋势强度度量、超买超卖判断及信号过滤机制,结合K线图分析,有效提升波段交易的成功率。

weixin_29306317的博客 601

iOS疯狂详解之开源库

youtube下载神器:https://github.com/rg3/youtube-dl vim插件:https://github.com/Valloric/YouCompleteMe vim插件配置:https://github.com/spf13/spf13-vim ----------------Mac完整项目---------- 电台:https://github.com

wangLongBlog的专栏 5236

[Bug已解决] CUDA error 尽管 CUDA 可用且 GPU 受支持-通用排查 RuntimeError 解决方案

[Bug已解决] CUDA error 尽管 CUDA 可用且 GPU 受支持-通用排查 RuntimeError 解决方案

一键难忘的博客 2415

iOS疯狂详解之设备前后摄像头切换

#import   // Switching between front and back cameras   - (AVCaptureDevice *)cameraWithPosition:(AVCaptureDevicePosition)position { NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMedi

wangLongBlog的专栏 4033

GPS天线结构、原理、测试

【有源陶瓷天线构成】GPS天线是由接收天线和前置放大器两个部件组成。GPS接收天线的作用,是将卫星来的无线电信号的电磁波能量变换成接收机电子器件可摄取应用的电流。绝大部分内置GPS天线为右旋极化陶瓷介质,其组成部分为:陶瓷天线、低噪音信号模块、线缆、[接头](h

数字世界 万物互联 2万+

[QMT量化交易小白入门]-二十四、年化收益47%的全球核心资产轮动策略(含代码解析)

m_days = 25 #动量参考天数period=200m_days被设置为25,表示动量参考的天数为25天;period被设置为200,用于指定获取市场数据的周期长度。

木头大左的博客 2967

iOS疯狂详解之 登陆后淡入淡出更换rootViewController

- (void)restoreRootViewController:(UIViewController *)rootViewController {     typedef void (^Animation)(void);     UIWindow* window = self.window;          rootViewController.modalTransitionStyl

wangLongBlog的专栏 3627

精通 Android NDK/JNI:从入门到精通实战与面试精粹

在Android开发中,

郑伟强dev的专栏 144

iOS疯狂详解之录制音频转换成Mp3

使用第三方 lame ,Mp3音频编码器.    使用 AVAudioRecorder 进行音频录制之前,进行参数设置: NSString *recordTemporaryPathString = [NSString stringWithFormat:@"%@/temporary",self.audioTemporarySavePath]; //LinearPCM 是iOS的一种

wangLongBlog的专栏 3425

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

iOS疯狂详解之NSFileManager使用

NSFileManager 是一个对文件进行操作的类 可以创建文件夹,移动文件夹,复制文件夹等. // 创建文件 - (void)createFile { // 获取Documents文件路径 #define kDocumentsPath [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMas

wangLongBlog的专栏 3025

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

iOS疯狂详解之tableview编辑添加删除

// //  VkoWLAccountVC.m //  PocketUniversity // //  Created by long on 15-1-14. //  Copyright (c) 2015年 WLong. All rights reserved. // #import "VkoWLAccountVC.h" #import "VkoWLMoreTableViewC

wangLongBlog的专栏 2823

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

iOS疯狂详解之UITableView的全选和多选功能

多选做法如下: - (void)tableView:(UITableView *)tableViewdidSelectRowAtIndexPath:(NSIndexPath *)indexPath {      [tableViewdeselectRowAtIndexPath:indexPath animated:YES];         Custom *cell= (Custom*

wangLongBlog的专栏 2362

iOS疯狂详解之排序(选择排序/插入排序)

选择排序  1.先求最小值  2.找到位置  3.把位置的数放到有序区  4.重复 for (int j = 0; j < count - 1; j++) { int minIndex = j;// 最小值的角标 for (int i = minIndex + 1; i < count;

wangLongBlog的专栏 2077

iOS疯狂详解之NSFileHandle

// 创建一个文件 - (void)addField { NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; NSString *fieldPath = [documentPath string

wangLongBlog的专栏 1920

iOS疯狂详解之AFNetworking图片缓存问题

AFNetworking网络库已经提供了很好的图片缓存机制,效率是比较高的,但是我发现没有直接提供清除缓存的功能,可项目通常都需要添加 清除功能的功能,因此,在这里我以UIImageView+AFNetworking类中添加了下面一个清除功能方法: + (void)clearCache;   + (void)clearCache {     AFImageC

wangLongBlog的专栏 1719

iOS疯狂详解之warning:performSelector may cause a leak because its selector is unknown

主要是警告信息,在非ARC项目中没有这个警告。如果是在某一处修改只需要加入下列代码: #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-performSelector-leaks" [self.ticketTarget performSelector: self.ticketAction w

wangLongBlog的专栏 1609

iOS疯狂详解之复杂对象归档反归档

需求:对复杂对象进行归档 反归档 复杂对象:工程中 自定义的数据模型类 例如一个Person类 Person.h // // Person.h // MySandBox // // Created by long on 15/9/15. // Copyright (c) 2015年 WLong. All rights reserved. // #import @inter

wangLongBlog的专栏 1608

iOS疯狂详解之视频播放MPMoviePlayerViewController

需要导入的框架 #import  MediaPlayer.framework MPMoviePlayerViewController: 打开网络视频: -(void)openmovie {     MPMoviePlayerViewController *movie = [[MPMoviePlayerViewControlleralloc]

wangLongBlog的专栏 1491

iOS 多语言本地化教程,VS Code KXApp 编辑 String Catalog .xcstrings

做 iOS 多语言本地化总要在 VS Code 和 Xcode 之间来回切?这篇讲用 KXApp(快蝎)在 VS Code 里直接编辑 String Catalog(.xcstrings):双击打开和 Xcode 一样的表格,`.xcstrings` 与老的 `.strings`、`.stringsdict` 同表编辑,加语言同步登记到工程、从源码扫描同步新 key,复数、设备变体和变量占位都在表里处理,改源语言文本后已有翻译自动标需复核。文件仍是标准格式,回 Xcode 打开一致。

2501_91592143的博客 151

4G 功能机操作系统选型指南:KaiOS、Mocor、MAUI、PMAOS 的能力边界与验证方法

4G 功能机如何选择操作系统?本文梳理 KaiOS、Mocor、MAUI、PMAOS 四条路线的技术定位与能力边界,从市场认证、应用清单、芯片与 BSP、内存与整机成本、交付维护五个维度建立选型流程,并提供场景决策矩阵和签约前八项验证清单,帮助研发与产品团队区分平台宣称、演示能力与目标机型的实际交付能力。

PMAOS的博客 178
上一篇: iOS疯狂详解之warning:performSelector may cause a leak because its selector is unknown
下一篇: iOS疯狂讲解之Xcode菜单及快捷键大全
吊炸天-狂人
博客等级 码龄12年 87粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值