我正在从字符串中进行非常简单的修剪。基本上它是这样的:
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仅修剪字符串最左端和最右端的字符串。任何人都可以证实这一点吗?
答案 0 :(得分:1)
你是对的 - 使用你的代码stingByTrimmingCharactersInSet会修剪左右空白,但只留下内部空白。
请注意,代码示例中还存在内存泄漏:
NSString *s = [[NSString alloc] initWithString:@"Some other string"];
当你在下一行重新分配给s时,这会泄漏。