使用 block 做回调函数

来源:互联网 发布:南风知我意番外 编辑:程序博客网 时间:2024/06/04 19:01

头文件

#import "MyHttpUploadProtocl.h"#import <Foundation/Foundation.h>@interface UploadPubQuality : NSObject<MyHttpUploadProtocl>@property (nonatomic,strong) NSString *uploadUrl;-(void) startUpload:(NSString *)inspect_primary inspect_detail:(NSString *)inspect_detail  block: (void(^)(NSDictionary * param))callback ;@end


主文件

#import "UploadPubQuality.h"#import <AFNetworking.h>@implementation UploadPubQuality- (instancetype)init{        NSString *url = AppServiceConfig.GetServiceUrl;    self.uploadUrl  = [NSString stringWithFormat:@"%@/%@",url,@"UploadQcData"];    return self;}-(void) startUpload:(NSString *)inspect_primary inspect_detail:(NSString *)inspect_detail  block: (void(^)(NSDictionary *))callback {        NSMutableDictionary*dic=[[NSMutableDictionary alloc] init];    [dic setObject:inspect_primary forKey:@"inspect_primary"];    [dic setObject:inspect_detail forKey:@"inspect_detail"];        AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];        manager.requestSerializer = [AFHTTPRequestSerializer serializer];        manager.responseSerializer = [AFJSONResponseSerializer serializer];        manager.responseSerializer.acceptableContentTypes= [NSSet setWithObjects:@"application/json", @"text/html",@"text/json",@"text/javascript", nil] ;//如果报接受类型不一致请替换一致text/html或别的        [manager POST:self.uploadUrl parameters:dic success:^(AFHTTPRequestOperation *operation, id responseObject) {                if (callback) {            callback(responseObject);        }            } failure:^(AFHTTPRequestOperation *operation, NSError *error) {                if (callback) {            NSDictionary *dict = [[NSDictionary alloc]initWithObjectsAndKeys:@"0",@"flag",@"error",@"msg", nil];            callback(dict);        }    }];}@end


调用


- (void)didUploadButttonClicked:(UIButton *)sender{    InitDbTableQuality *initd = [[InitDbTableQuality alloc]init];    NSMutableArray *array = [initd GetDetailIUnUploadTable];    NSMutableArray *dataArray = [initd GetMainTableWithUpload_flag:0];    NSString *jsonText = [ModelToJson toJSON:dataArray options:NSJSONWritingPrettyPrinted error:nil];    NSString *jsonTextDetail = [ModelToJson toJSON:array options:NSJSONWritingPrettyPrinted error:nil];    UploadPubQuality *upload = [[UploadPubQuality alloc]init];    [upload startUpload:jsonText inspect_detail:jsonTextDetail block:^(NSDictionary *param){                Boolean flag =  [[param valueForKey:@"flag"] boolValue];        NSString *msg = (NSString*)[param objectForKey: @"msg" ];        [HCommon popupSuccessMessage:msg];        if( flag ){        [self.HunUploadVC updateUploadFlag];        NSNotification * notice = [NSNotification notificationWithName:@"uploadSuccess" object:nil userInfo:nil];        [[NSNotificationCenter defaultCenter]postNotification:notice];        }    }];}



原创粉丝点击