在上传图片时获取cocoa 3840错误?

时间:2015-09-18 12:44:00

标签: ios objective-c nsdata nsmutabledictionary nsjsonserialization

这里我试图将图像发送到服务器端,但它给了我错误

    if(picking)
            {
                NSLog(@"entering in to image side");
                [body appendData:[[NSString stringWithFormat:@"--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
                [body appendData:[[NSString stringWithFormat:@"content-Disposition:form-data;name=\"pic\"\r\n\r\n filename=imageName.jpg\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
                [body appendData:[@"Content-Type: image/jpeg\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
                [body appendData:[NSData dataWithData:picking]];
                [body appendData:[[NSString stringWithFormat:@"--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
            }

            [body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]];
            [request setHTTPBody:body];
            NSString *postLength = [NSString stringWithFormat:@"%lu", (unsigned long)[body length]];
            [request setValue:postLength forHTTPHeaderField:@"Content-Length"];

[NSURLConnection sendAsynchronousRequest:request queue:[[NSOperationQueue alloc]init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
            dispatch_async(dispatch_get_main_queue(),^{

                if([data length]>0 && connectionError==nil)
                {
                    NSError *error;


                    NSMutableDictionary *jsonResponse=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];

                    if(error){
                        [Utitlity alertFunction:@"Warning" message:[error localizedDescription]];
                    }
                    else
                    {
                        [self requestComplete:jsonResponse];
                    }
                }

这个图像出现在注册屏幕上,如果我没有在注册屏幕中选择图片意味着,客户注册获得成功。而选择图像则会给出cocoa 3048错误。

1 个答案:

答案 0 :(得分:0)

问题在您的以下声明中。每个Apple文档NSJSONReadingMutableContainers选项应该用于数组和字典。请尝试使用NSJSONReadingAllowFragments

NSMutableDictionary *jsonResponse=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];
  

常量NSJSONReadingMutableContainers指定数组和   字典被创建为可变对象。

     

适用于iOS 5.0及更高版本。 NSJSONReadingMutableLeaves指定   JSON对象图中的叶字符串被创建为实例   的NSMutableString。

     

适用于iOS 5.0及更高版本。 NSJSONReadingAllowFragments指定   解析器应该允许顶级对象不是   NSArray或NSDictionary的实例。

     

适用于iOS 5.0及更高版本。