比较使用isEqualToString不能与iPhone中的Url编码字符串一起使用

时间:2014-08-19 16:29:09

标签: ios objective-c

我在iPhone中使用flickrApi。在进行身份验证后,我将其userId作为

inNSID = (_NSCFString) @"108346178%40N06" 

请注意%40

在我的应用中,我在服务器中保存了相同的ID。在其他地方,我必须再次进行身份验证,我使用此ID来检查身份验证是否已经完成。当我尝试使用isEqualToString将此字符串与我的字符串进行比较时,结果为NO。 / p>

这是日志跟踪

Printing description of tempAcc->serviceId:
108346178%40N06
Printing description of inNSID:
108346178%40N06

两者似乎完全相同,我如何比较两者?这是怎么回事。

1 个答案:

答案 0 :(得分:1)

使用NSRegularexpression扫描Unicode字符串以查找任何匹配项。

NSString *string = @"108346178%40N06";
NSError *error;

NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:string
                                                                       options:NSRegularExpressionCaseInsensitive
                                                                         error:&error];

NSTextCheckingResult *match = [regex firstMatchInString:string
                                                options:NSMatchingReportCompletion
                                                  range:NSMakeRange(0, string.length)];

if (match) {
    NSLog(@"yes");

} else {
    NSLog(@"no");

}