Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 获取ASIFormDataRequest响应后应用程序崩溃_Objective C_Ios_Asiformdatarequest - Fatal编程技术网

Objective c 获取ASIFormDataRequest响应后应用程序崩溃

Objective c 获取ASIFormDataRequest响应后应用程序崩溃,objective-c,ios,asiformdatarequest,Objective C,Ios,Asiformdatarequest,在我的应用程序中,我使用ASIFormDataRequest发送我的新用户注册请求。该请求包含用户详细信息以及使用Base64编码转换的图像。我也得到了回应。但是在得到响应后,应用程序会崩溃。请帮我解决这个问题。这个代码有错误吗 NSString *sx=@"male"; registrationStatusBlock = response; NSDateFormatter *dateOfBirthFormatter = [[NSDateFormatter all

在我的应用程序中,我使用ASIFormDataRequest发送我的新用户注册请求。该请求包含用户详细信息以及使用Base64编码转换的图像。我也得到了回应。但是在得到响应后,应用程序会崩溃。请帮我解决这个问题。这个代码有错误吗

NSString *sx=@"male";
        registrationStatusBlock = response;
        NSDateFormatter *dateOfBirthFormatter = [[NSDateFormatter alloc] init];
        [dateOfBirthFormatter setDateFormat:@"YYYY:MM:dd"];
        [dateOfBirthFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
        NSString *formattedDate = [dateOfBirthFormatter stringFromDate:userDetails.dateOfBirth];


        NSLog(@"URL: %@", [NSString stringWithFormat:@"%@&firstName=%@&lastName=%@&password=%@&emailId=%@&portrait=%@&dob=%@&gender=%@&task=createUser",webServiceURL,userDetails.firstName, userDetails.lastName, userDetails.emailAddress, userDetails.password, userDetails.profilePicture, formattedDate, sx]);
        NSLog(@"Gender %@",userDetails.gender);

        int lengthOfData=0;
        NSString *encodedString ;
        NSData *    imageData = UIImagePNGRepresentation(userDetails.profilePicture);

        registrationStatusBlock = response;
        self.responseData = [NSMutableData data];
        if(userDetails.profilePicture !=NULL)
        {
            lengthOfData = imageData.length;
            encodedString =  [NSString base64StringFromData:(NSData *) imageData length:lengthOfData];
        } 
        else
            encodedString=@"";

        NSLog(@"URL: %@", [NSString stringWithFormat:@"%@&firstName=%@&lastName=%@&password=%@&emailId=%@&portrait=%@&portrait_type=png&dob=%@&gender=%@&task=createUser",webServiceURL,userDetails.firstName, userDetails.lastName, userDetails.emailAddress, userDetails.password, encodedString, formattedDate, sx]);



        NSMutableString *URLString = [[NSMutableString alloc]initWithString:webServiceURL];
        [URLString appendString:[NSString stringWithFormat:@"%@&firstName=%@&lastName=%@&password=%@&emailId=%@&portrait=%@&portrait_type=png&dob=%@&gender=%@&task=createUser",webServiceURL,userDetails.firstName, userDetails.lastName, userDetails.emailAddress, userDetails.password, encodedString, formattedDate, sx]];

        ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:[webServiceURL stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]]];

        [request addPostValue:userDetails.firstName       forKey:@"firstName"];
        [request addPostValue:userDetails.lastName        forKey:@"lastName"];
        [request addPostValue:userDetails.password        forKey:@"password"];
        [request addPostValue:userDetails.emailAddress    forKey:@"emailId"];
        [request addPostValue:encodedString forKey:@"portrait"];
        [request addPostValue:@"png" forKey:@"portrait_type"];

        [request addPostValue:formattedDate forKey:@"dob"];

        [request addPostValue:sx forKey:@"gender"];

        [request addPostValue:@"createUser"                   forKey:@"task"];
        [request setRequestMethod:@"POST"];
        NSLog(@" user registration request %@",request);
        [request setDelegate:self];
        [request startAsynchronous];
        [NSThread sleepForTimeInterval:5];
        NSLog(@"response %@",[request responseString]);
        registrationStatusBlock =[[request responseString]JSONValue]; 
那是什么?您启动一个异步请求,然后睡眠,然后醒来,就好像收到了响应一样? 异步不是这样工作的

那是什么?您启动一个异步请求,然后睡眠,然后醒来,就好像收到了响应一样?
异步不是这样工作的

使用委托获取响应字符串

[request setDelegate:self];
[request setDidFinishSelector:@selector(requestFinished:)];
[request setDidFailSelector:@selector(requestFailed:)];
[request startAsynchronous];
然后捕获来自代理的响应:

- (void)requestFinished:(ASIHTTPRequest *)theRequest {
     NSLog(@"response %@",[theRequest responseString]);
}

- (void)requestFailed:(ASIHTTPRequest *)theRequest {
     NSLog(@"response Failed%@, Error:%@",[theRequest responseString],[theRequest error]);
}

使用委托获取响应字符串

[request setDelegate:self];
[request setDidFinishSelector:@selector(requestFinished:)];
[request setDidFailSelector:@selector(requestFailed:)];
[request startAsynchronous];
然后捕获来自代理的响应:

- (void)requestFinished:(ASIHTTPRequest *)theRequest {
     NSLog(@"response %@",[theRequest responseString]);
}

- (void)requestFailed:(ASIHTTPRequest *)theRequest {
     NSLog(@"response Failed%@, Error:%@",[theRequest responseString],[theRequest error]);
}

事故日志?崩溃日志和调用堆栈说了什么?你知道异常到底是在哪里抛出的吗?这是一条完全未经请求的建议——但你应该认识到ASIHTTPRequest是,开发人员建议其他开发人员寻找替代方案。如果这是一个新的项目,并且您正在寻找异步网络代码,那么AFNetworking就是这些选项之一。还有其他的。崩溃日志?崩溃日志和调用堆栈说了什么?你知道异常到底是在哪里抛出的吗?这是一条完全未经请求的建议——但你应该认识到ASIHTTPRequest是,开发人员建议其他开发人员寻找替代方案。如果这是一个新的项目,并且您正在寻找异步网络代码,那么AFNetworking就是这些选项之一。还有其他的。