Objective c 由字符串反斜杠转义分隔的组件
我对NSString ComponentSeparatedByString方法有问题 下面是一个例子: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
(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”。