Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.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
NSDictionary和NSArray正在转换为元素数组,同时使用AF2将数据发布到PHP_Php_Ios_Objective C_Arrays_Afnetworking 2 - Fatal编程技术网

NSDictionary和NSArray正在转换为元素数组,同时使用AF2将数据发布到PHP

NSDictionary和NSArray正在转换为元素数组,同时使用AF2将数据发布到PHP,php,ios,objective-c,arrays,afnetworking-2,Php,Ios,Objective C,Arrays,Afnetworking 2,当我将上述NSDictionary发送到php的AFNetworking 2时,如下所示 NSDictionary *partyOne = [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithInt:2], @"type", [NSNumber numberWithInt:1], @"status",

当我将上述NSDictionary发送到php的AFNetworking 2时,如下所示

NSDictionary *partyOne = [NSDictionary dictionaryWithObjectsAndKeys:
                              [NSNumber numberWithInt:2], @"type",
                              [NSNumber numberWithInt:1], @"status",
                              @"name", @"name",
                              @"name", @"nid",
                              @"name", @"nationality",
                              @"", @"address",
                              @"name", @"mobile",
                              nil];

    NSDictionary *partyTwo = [NSDictionary dictionaryWithObjectsAndKeys:
                              [NSNumber numberWithInt:2], @"type",
                              [NSNumber numberWithInt:1], @"status",
                              @"name", @"name",
                              @"name", @"nid",
                              @"name", @"nationality",
                              @"", @"address",
                              @"name", @"mobile",
                              nil];


    NSArray *partyArray = [NSArray arrayWithObjects: partyOne, partyTwo, nil];

   NSDictionary  *finalData =[NSDictionary dictionaryWithObject: partyArray forKey:@"details"];
我在我的php服务器上收到它

// Send the data to server
    NSDictionary *regDic = [self generteJasonData];

    // Send the registered data to server
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    [manager.requestSerializer setAuthorizationHeaderFieldWithUsername:userName password:userpassWd];
     manager.responseSerializer = [AFJSONResponseSerializer serializer];
    [manager setShouldUseCredentialStorage:NO];

    NSMutableURLRequest *request = [manager.requestSerializer requestWithMethod:@"POST" URLString:@"http://testlink/submit"parameters:regDic];
    [request setHTTPShouldHandleCookies:NO];

    AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
    AFJSONResponseSerializer *serializer = [AFJSONResponseSerializer serializer];
    [operation setResponseSerializer:serializer ];
    [operation setShouldUseCredentialStorage:NO];
    [operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSLog(@"Success: %@", responseObject);
        [manager.requestSerializer clearAuthorizationHeader];
        [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"Failure: %@ responce :%@", error,operation.responseString);
        [manager.requestSerializer clearAuthorizationHeader];
        [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"upload", @"")                                                                                         message:NSLocalizedString(@"Some error occureed while uploading data, please tryagain later", @"")
                                                       delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
        [alert show];


    }];
    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
    [operation start];
i、 我已经发送了2个数组元素,但是我接收的数组元素和接收的数组元素一样多。
有人能告诉我这里出了什么问题吗。他们的AFNetworking 2.0 API有问题吗?或者我的代码有问题。

好的,那么你需要做的就是修复这个方法

details =             (
                                {
                    address = "";
                },
                                {
                    mobile = name;
                },
                               {
                    name = name;
                },
                                {
                    nationality = name;
                },
                                {
                    nid = name;
                },
                               {
                    status = 1;
                },
                                {
                    type = 2;
                },
                                {
                    address = "";
                },            {
                    mobile = name;
                },           {
                    name = name;
                },
                                {
                    nationality = name;
                },
                                {
                    nid = name;
                },
                       {
                    status = 1;
                },
                                {
                    type = 2;
                },
            );
在文件AFURLRequestSerialization.m中: 而不是

NSArray * AFQueryStringPairsFromKeyAndValue(NSString *key, id value)
for (int i = 0;i < [array count];++i)
成功

for (id nestedValue in array)
[mutableQueryStringComponents addObjectsFromArray:AFQueryStringPairsFromKeyAndValue([NSString stringWithFormat:@"%@[]", key], nestedValue)];
成功

for (id nestedValue in array)
[mutableQueryStringComponents addObjectsFromArray:AFQueryStringPairsFromKeyAndValue([NSString stringWithFormat:@"%@[]", key], nestedValue)];

AFNetworking 2.0:我使用@gilad answer并对其进行了一些修改,使其能够正常工作。所以我所做的写在下面:

[mutableQueryStringComponents addObjectsFromArray:AFQueryStringPairsFromKeyAndValue([NSString stringWithFormat:@"%@[%d]", key,i], nestedValue)];

我刚刚在前面提到的AFURLRequestSerialization.m类中编辑了AFQueryStringPairsFromKeyAndValue,然后它开始按照我们想要的方式工作。

Here
NSDictionary*finalData=[NSDictionary Dictionary Dictionary WithObject:arrayDictionary forKey:@“details”]
什么是
arrayDictionary
?@katre,我已经编辑了我的查询。是“partyArray”我碰到了同一个问题Vaz你找到解决办法了吗?回答得好兄弟。我很震惊为什么这个答案不被接受,但你应该解释得更清楚,你刚刚救了我一天:),我只是为了这个问题花了半天时间。谢谢你怎么用这个?我需要使用以下格式执行请求:[{“路径”:“/”,“值”:{“状态”:“活动”},“操作”:“替换”}]您能解释更多吗?显示您的使用代码。@karthikeyan我的请求类似于[{},{},{}]格式。正如我在回答中所提到的,我已经用这个方法替换了NSArray*AFQueryStringPairsFromKeyAndValue(NSString*key,id-value)mines@karthikeyan如果你还在寻找解决方案,那么你可以告诉我。我可以试着给你们编辑好的AFNetworking框架谢谢你们的重播,我已经用NSMutableString完成了,我只是这样做了formate,然后转换成数据,然后发送到服务器,这对我来说是可行的,