rangeOfString无法识别Substring

时间:2014-01-17 15:57:28

标签: objective-c

我有这种行为,我无法理解。

NSString *title = [[PushNotifcationManager getPushNotificationSettingsForKey:@"settings"] objectForKey:@"title"];
NSLog(@"title: %@",title); //Outputs Test\ntest
if([title rangeOfString:@"\n"].location == NSNotFound){
   //String contains no \n
}else{
   //String contains \n
}

即使字符串明确包含“\ n”,[title rangeOfString:@"\n"].location == NSNotFound也会返回true

1 个答案:

答案 0 :(得分:3)

NSLog("%@")不会在字符串中转义反斜杠字符,因此输出 Test\ntest表示您的字符串包含反斜杠字符,后跟n, 不是换行符。

因此你必须检查

[title rangeOfString:@"\\n"]

其中字符串文字中的\\代表一个反斜杠字符。