stringByTrimmingCharactersInSet的问题:

时间:2009-12-30 16:53:19

标签: nsstring

我正在从字符串中进行非常简单的修剪。基本上它是这样的:

int main (int argc, const char * argv[]) {
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

    NSString *s = [[NSString alloc] initWithString:@"Some other string"];
    s = [s stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
    NSLog(@"%@",s);

    [pool drain];
    return 0;
}

无论我检查多少次,我都找不到代码上的错误。但是编译器一直在返回:

Running…
2009-12-30 08:49:22.086 Untitled[34904:a0f] Some other string

它根本不修剪弦乐。我的代码中有错误,因为我无法相信这些简单的东西不起作用。谢谢!

修改 我想我弄错了。 stringByTrimmingCharactersInSet仅修剪字符串最左端和最右端的字符串。任何人都可以证实这一点吗?

1 个答案:

答案 0 :(得分:1)

你是对的 - 使用你的代码stingByTrimmingCharactersInSet会修剪左右空白,但只留下内部空白。

请注意,代码示例中还存在内存泄漏:

NSString *s = [[NSString alloc] initWithString:@"Some other string"];

当你在下一行重新分配给s时,这会泄漏。