gpt4 book ai didi

objective-c - `NSString` 方法调用后 xCode 上 `stringByReplacingCharactersInRange` 末尾的垃圾

转载 作者:搜寻专家 更新时间:2023-10-30 20:25:29 24 4
gpt4 key购买 nike

我使用以下代码替换文件的扩展名:

NSString *fileOriginal = [url lastPathComponent];
NSString *fileSource = @"";
NSRange range = [fileOriginal rangeOfString:@"." options:NSBackwardsSearch];
if (range.length > 0) {
range.length = fileOriginal.length - range.location;
fileSource = [fileOriginal stringByReplacingCharactersInRange:range withString:[NSString stringWithFormat:@".%@", @"cpp"]];
} else {
fileSource = [fileOriginal stringByAppendingString:[NSString stringWithFormat:@".%@", gFileExtension]];
}

代码运行良好。但是调试器在 NSString 的末尾显示垃圾:

enter image description here

如果我尝试将 retain 添加到字符串,结果相同。到底发生了什么?

最佳答案

假设您对 gFileExtension 的定义是有效的,为什么不试试这个:

NSString *fileSource;
if ([[fileOriginal pathExtension] length] > 0)
{
fileSource = [[fileOriginal stringByDeletingPathExtension] stringByAppendingPathExtension:gFileExtension];
}
else
{
fileSource = [fileOriginal stringByAppendingPathExtension:gFileExtension];
}

使用 NSString 中内置的路径处理,您不必担心点;它已为您完成。

关于objective-c - `NSString` 方法调用后 xCode 上 `stringByReplacingCharactersInRange` 末尾的垃圾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14928298/

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