选中NSString长度不正确?

时间:2012-06-07 08:19:31

标签: objective-c nsstring

我对此功能有疑问:

- (bool) test : (NSString *) chaine
{
    NSLog(@"%i",[chaine length]);
    if([chaine length] == 19) NSLog(@"Test");
}

我的日志中正确地有19个,但不是“测试”。所以你知道什么是错的吗?

非常感谢

3 个答案:

答案 0 :(得分:3)

我试过这个

- (void)testFunction{
NSString * aStrFunc= @"StackOverflow";

NSLog(@"%d",[aStrFunc length]);

NSLog(@"%@",[aStrFunc length]==13?@"test right":@"test not right");

}

答案 1 :(得分:0)

尝试使用此代码:

- (bool) test : (NSString *) chaine
{
    //CGFloat len = (float)[chaine length];
    NSUInteger len = [chaine length];
    NSLog(@"%i", len);
    //if (19.0f == len)
    if (19 == len)
    {
        NSLog(@"Test");
    }
}

答案 2 :(得分:-2)

试试这个

NSData* data=[chaine dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"@s",[data bytes]);//watch the string's bytes possibly you have some unprintable symbols here
if ([data length] == 19) {
NSLog(@"Test");
}