Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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
将字符串数组传递给iPhone中的web服务_Iphone - Fatal编程技术网

将字符串数组传递给iPhone中的web服务

将字符串数组传递给iPhone中的web服务,iphone,Iphone,我已经开发了一个iPhone应用程序,需要将字符串数组传递给web服务。 现在,我有了一个NSMutable数组,比如sendSelectedID 我知道数组中有值,因为当我在for循环中显示时 for(i=0;i<[sendSelectedID count];i++) { NSLog(@"%@", [sendSelectedID objectAtindex:i]); } soap消息显示如下: NSString *soapMessage = [NSString stringWithFo

我已经开发了一个iPhone应用程序,需要将字符串数组传递给web服务。 现在,我有了一个
NSMutable
数组,比如
sendSelectedID

我知道数组中有值,因为当我在for循环中显示时

for(i=0;i<[sendSelectedID count];i++)
{
NSLog(@"%@", [sendSelectedID objectAtindex:i]);
}
soap消息显示如下:

NSString *soapMessage = [NSString stringWithFormat:
  @"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
 "<S:Envelope xmlns:S=\"http://schemas.xmlsoap.org/soap/envelope/\">\n"
  "<S:Header/\>\n"
  "<S:Body>\n"
  "<ns2:confirmRecallDeposit xmlns:ns2=\"http://services.cbp.syntel.org/\">\n"
  "<TransactionId>(
        1,
        3
      )</TransactionId>\n"
  "</ns2:confirmRecallDeposit>\n"
  "</S:Body>\n"
  "</S:Envelope>\n",sendSelectedID ];
NSString*soapMessage=[NSString stringWithFormat:
@“\n”
“\n”
“\n”
“\n”
“\n”
"(
1.
3.
)\n“
“\n”
“\n”
“\n”,sendSelectedID];
但在服务器端,它给出了错误号格式异常。
如何在服务器端删除此错误?我试图修剪收到的值,但没有效果。

这只是猜测,但您可能需要在
sendSelectedID
中转义回车

您可以将方法
-stringByEscapingMetacharacters
添加到
NSString
类别(将功能扩展到
NSString
):

而不是你现在拥有的:

(
1,
3
)

你的问题很难理解。您看到的输出有什么问题?期望的输出是什么?什么是“receib”和“ved”?实际代码是什么样子的?您已经问了17个问题,但没有用正确答案标记任何问题?请告诉我如何标记为正确答案,我试过一个。我点击了旗帜按钮,它给了我一条信息,需要版主,然后在文本框中我输入了正确的答案。这与我需要做的相同吗?如果您不使用标志选项来标记接受的答案,请单击绿色复选框来标记接受的答案。除非你对已接受的答案做了适当的标记,否则你不太可能收到问题的答案,因为人们通常不会花时间在一个答案上,如果他们不会因此获得声誉的话。
@implementation NSString (Additions)

- (NSUInteger) numberOfUnsafeCharacters {
    NSUInteger i, len, cnt;

    if ((len = [self length]) == 0)
        return 0;

    for (i = 0, cnt = 0; i < len; i++) {
        unichar c;

        c = [self characterAtIndex:i];
        if (c == ',' || c == ';' || c == '\n' || c == '\\') cnt++;
    }
    return cnt;
}

- (NSString *) stringByEscapingMetacharacters {
    NSUInteger i, cnt, len;
    unichar  *newStr;
    NSString *result;

    if ((cnt = [self numberOfUnsafeCharacters]) == 0)
        return self;

    len = [self length];
    newStr = calloc(len + cnt + 10, sizeof(unichar));
    for (i = 0, cnt = 0; i < len; i++) {
        unichar c;

        c = [self characterAtIndex:i];
        if (c == '\\') {
            newStr[i + cnt] = '\\';
            cnt++;
        }
        else if (c == '\n') {
            newStr[i + cnt] = '\\';
            cnt++;
            c = 'n';
        }
        newStr[i + cnt] = c;
    }
    newStr[i + cnt] = '\0';
    result = [NSString stringWithCharacters:newStr length:(i + cnt)];
    if (newStr != NULL) free(newStr); newStr = NULL;

    return result;
}
(\\n1,\\n3\\n)
(
1,
3
)