gpt4 book ai didi

objective-c - 无法从 Cocoa NSMutableString 中去除换行符

转载 作者:行者123 更新时间:2023-12-03 17:28:42 25 4
gpt4 key购买 nike

嘿,对于我的生活来说,这不起作用:..

NSMutableString *b64String = [[[NSMutableString alloc] initWithFormat:@"Basic %@", [string _base64Encoding:string]] autorelease];

[b64String stringByTrimmingCharactersInSet:[NSCharacterSet newlineCharacterSet]];
NSLog(@"(%@)", b64String);

NSRange foundRange = [b64String rangeOfString:@"\n"];
if (foundRange.location != NSNotFound)
[b64String stringByReplacingOccurrencesOfString:@"\n"
withString:@""
options:0
range:foundRange];
NSLog(@"(%@)", b64String);

这两种方法都是我在 SO 上找到的 - 而且它们似乎不起作用......我必须做一些非常错误的事情。但是,如果我中断 NSLog,我可以清楚地看到字符串中的“\n”(在调试器和控制台中)

此外,这是真的:

if (foundRange.location != NSNotFound)

我可以看看是否执行 stringByReplacingOccurencesOfString 方法...

最佳答案

只需调用

b64String = [b64String stringByReplacingOccurrencesOfString:@"\n" withString:@""]

就足够了(记住 -release 不必要的 b64string 副本。您可能希望将其存储到另一个变量中),或者使用全范围的实际可变方法:

[b64String replaceOccurrencesOfString:@"\n" withString:@"" options:0 range:NSMakeRange(0, [b64String length])];

-stringByReplacingOccurrencesOfString:withString:options:range:中,range参数指定发生替换的范围。这意味着范围之外的任何内容都不会被替换。在您的代码中,您传递 \n 第一次出现的范围。效果是仅删除 1 次出现的 \n

stringBy... 方法用于不可变字符串。他们不会修改输入字符串。相反,他们创建不可变字符串的副本并返回修改后的副本。

关于objective-c - 无法从 Cocoa NSMutableString 中去除换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2122312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com