您的位置:首页 > 移动开发 > IOS开发

iOS中使用单例类时,如何调用加号方法

2016-12-19 14:44 483 查看
本文拿afnetworking  来说;
/*
.h 文件中
@property (nonatomic, strong)AFHTTPRequestOperationManager *shareClient;

+(instancetype)getSingleClass;

*/

------------------------>>>>>>>>>>>>>>>>>>>------------------
.m文件中

/**
 *  单例类
 */

+(instancetype)getSingleClass{
    
    staticMJ_HttpManager * shareManager =
nil;
    staticdispatch_once_t predicate;
    dispatch_once(&predicate, ^{
       
        shareManager =[[MJ_HttpManageralloc]init];
    });
    return shareManager;
}

-(AFHTTPRequestOperationManager *)shareClient{
    
    if (_shareClient ==nil) {
        
        _shareClient = [[AFHTTPRequestOperationManageralloc]initWithBaseURL:[NSURLURLWithString:LoginUrl]];
        [_shareClient.requestSerializersetTimeoutInterval:10.f];//超时
10请求
        [_shareClient.requestSerializerwillChangeValueForKey:@"timeoutInterval"];
        [_shareClient.requestSerializerdidChangeValueForKey:@"timeoutInterval"];
        _shareClient.requestSerializer = [AFJSONRequestSerializerserializer];
        _shareClient.responseSerializer = [AFJSONResponseSerializerserializer];
        _shareClient.responseSerializer.acceptableContentTypes = [NSSetsetWithObjects:@"text/plain",@"application/json",@"text/json",@"text/html",
nil];
     
        
//        _shareClient.securityPolicy.SSLPinningMode = AFSSLPinningModeCertificate ;
         AFSecurityPolicy *policy = [AFSecurityPolicypolicyWithPinningMode:AFSSLPinningModeCertificate];
        _shareClient.securityPolicy = policy;

        // 2.设置证书模式
        NSString * cerPath = [[NSBundlemainBundle]
pathForResource:@"menjin"ofType:@"cer"];
        NSData * cerData = [NSDatadataWithContentsOfFile:cerPath];
        _shareClient.securityPolicy.pinnedCertificates = [[NSArrayalloc]
initWithObjects:cerData,nil];
        // 客户端是否信任非法证书
        _shareClient.securityPolicy.allowInvalidCertificates =YES;
        // 是否在证书域字段中验证域名
        [_shareClient.securityPolicysetValidatesDomainName:NO];
        
    }
    return_shareClient;
}

//如果想要获得单例类的某个属性

 MJ_HttpManager * http = [MJ_HttpManagergetSingleClass];
 http.shareClient =nil;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐