之前在一个项目里面,需要通过POST方式传递一个二维数组的参数,却一直失败,翻查了很多资料,最后发现可以通过编辑源码的方式来解决问题,方法很简单:
- 打开AFURLRequestSerialization.m文件
- 找到AFQueryStringPairsFromKeyAndValue方法
- 将中间一个else if语句中的内容改成以下代码
原来:
else if ([value isKindOfClass:[NSArray class]]) {
NSArray *array = value;
for (id nestedValue in array) {
[mutableQueryStringComponents addObjectsFromArray:AFQueryStringPairsFromKeyAndValue([NSString stringWithFormat:@"%@[]", key], nestedValue)];
}
}
修改后:
else if ([value isKindOfClass:[NSArray class]]) {
NSArray *array = value;
for (id nestedValue in array) {
NSInteger index = [array indexOfObject:nestedValue];
[mutableQueryStringComponents addObjectsFromArray:AFQueryStringPairsFromKeyAndValue([NSString stringWithFormat:@"%@[%ld]", key, index], nestedValue)];
}
}
近期评论