responseString为null

时间:2012-06-19 13:53:40

标签: ios iphone objective-c

我的webservice返回带有新行的json字符串,因此它会导致responseString始终为null的问题。

NSString *responseString=[[NSString alloc] initWithData:kampanyadata encoding:NSUTF8StringEncoding];

NSLog(@"%@",[NSString stringWithFormat:@"responsestring:%@",responseString]);
  

---- responsestring:空

如何替换JSON String中的新行字符?

4 个答案:

答案 0 :(得分:0)

NSString *tempString = [tempString stringByReplacingOccurrencesOfString:@"\n" withString:@" "];

我认为你需要这样做:)

答案 1 :(得分:0)

你确定kampanyadata不是null吗?如果它不为null,请尝试使用NSASCIIStringEncoding,如下所示:

NSString *responseString=[[NSString alloc] initWithData:kampanyadata encoding:NSASCIIStringEncoding];.

Offtopic

顺便说一下,NSLog();方法已将NSString格式化为参数,因此您可以使用:

NSLog(@"responsestring:%@",responseString);

答案 2 :(得分:0)

    soapResults = [[NSString alloc]
                    initWithBytes: [webData mutableBytes]
                    length:[webData length]
                    encoding:NSUTF8StringEncoding];

试试这个对我来说很好用

答案 3 :(得分:0)

你有一些NSData,你试图将它转换为NSString。此时没有涉及JSON。任何错误都与JSON或换行符没有任何关系。可能性:1。您收到的NSData是零。 2.您收到的NSData不是UTF-8格式。

您的NSLog声明非常有趣。查看NSLog的定义 - 第一个参数是格式字符串。而不是

NSLog(@"%@",[NSString stringWithFormat:@"responsestring:%@",responseString]);

你应该写

NSLog (@"responseString:%@", responseString);

您可以将JSON文档直接传递给到NSJSONSerializer。无需将其转换为NSString。实际上,如果数据量很大,只会浪费宝贵的内存。