Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/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
Objective c 由字符串反斜杠转义分隔的组件_Objective C_Nsstring - Fatal编程技术网

Objective c 由字符串反斜杠转义分隔的组件

Objective c 由字符串反斜杠转义分隔的组件,objective-c,nsstring,Objective C,Nsstring,我对NSString ComponentSeparatedByString方法有问题 下面是一个例子: (lldb) p [[@"TEST\\¦TEST\\WORKS" componentsSeparatedByString:@"¦"] objectAtIndex: 0] (NSTaggedPointerString *) $13 = 0xa00005c545345545 @"TEST\" (lldb) p [[@"TEST\\¦TEST\\WORKS" componentsSeparatedB

我对NSString ComponentSeparatedByString方法有问题

下面是一个例子:

(lldb) p [[@"TEST\\¦TEST\\WORKS" componentsSeparatedByString:@"¦"] objectAtIndex: 0]
(NSTaggedPointerString *) $13 = 0xa00005c545345545 @"TEST\"
(lldb) p [[@"TEST\\¦TEST\\WORKS" componentsSeparatedByString:@"¦"] objectAtIndex: 1]
(__NSCFString *) $14 = 0x000000017023f440 @"TEST\\WORKS"
在我看来,结尾带有转义反斜杠的子字符串将丢失反斜杠的正确转义
\\

在上面的示例中,我希望在第一种情况下是一个NSString(
@“TEST\\”
),而不是一个NSTaggedPointerString(
@“TEST\”
),它的最后一个字符没有正确转义

我是做错了什么,还是认为这种方法应该有不同的效果

我问这个问题是因为我必须在NSPredicate中使用子字符串,我得到以下异常:

NSArray *explodePair = [pair componentsSeparatedByString:@"¦"];
NSString *colorCode = [explodePair count] > 0 ? [explodePair firstObject] : nil;
[self.colors filteredOrderedSetUsingPredicate:[NSPredicate predicateWithFormat:@"code LIKE %@", colorCode]]
由于未捕获异常而终止应用程序 “NSInvalidArgumentException”,原因:“反斜杠是一个通配符 字符,并且不能在字符串的末尾显示为未转换。”


这里的问题是,
NSTaggedPointerString
\u NSCFString
在LLDB输出中以不同的方式显示单个反斜杠,这令人困惑

您可以使用
po
而不是
p
以相同的方式查看它们


您还可以使用NSString上的
length
方法检查
NSTaggedPointerString
显示为
\
\uu NSCFString
显示为
\
的内容实际上只是一个字符。

您的问题不清楚。请添加有关您期望的内容和它给您带来的内容的信息。感谢您的反馈,我更新了问题“TEST\\\'TEST\\WORKS”创建字符串“TEST\'TEST\WORKS”。