componentsSeparatedByString:@" \ r \ n"不适用于NSString

时间:2014-03-20 18:49:23

标签: objective-c cocoa-touch

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
NSString *URLString = [[url absoluteString] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSArray *temp = [URLString componentsSeparatedByString:@"\r\n"];
return YES;}

虽然预览显示\ r \ n仍然在字符串中,但不会拆分字符串。 有什么建议吗?

输入网址示例 - myapp:// bla \ r \ n \ nbla

这里是替换%esc并按' \ r \ n'分割后的字符串:

enter image description here

这里是替换%esc之前的url: enter image description here

我怀疑更换百分比逃脱必须对它做点什么。

3 个答案:

答案 0 :(得分:2)

根据Eduardo,但更接近您的代码,以下内容:

NSString *URLString = @"myapp://bla\r\nbla";
NSArray *temp = [URLString componentsSeparatedByString:@"\r\n"];
NSLog(@"%@", temp);

输出:

2014-03-20 12:05:17.247 Untitled 3[437:507] (
    "myapp://bla",
    bla
)

传入的字符串是否可能包含文字的四字符序列\ r \ n,它将被写为@"\\r\\n"而不是两个控制代码的序列,\ r \ n?

答案 1 :(得分:1)

尝试以下

NSArray *temp = [URLString componentsSeparatedByString:@"\\r\\n"];

您的初始URLString不能包含CR LF。它只包含两个符号的文字'\ r'和'\ n'

答案 2 :(得分:0)

是否显示" \ r \ n"预览?这有效:

NSLog(@"%@", [@"abc\r\ndef" componentsSeparatedByString:@"\r\n"]);

如果您的代码不起作用,您确定您的字符串不包含" \\ r \\ n"而不是" \ r \ n"?

编辑: SO"未转义"我的双斜线