objective-c - 被 stringByDeletingLastPathComponent 的子字符串结果混淆

标签 objective-c cocoa

我的代码

NSMutableString *s= (NSMutableString *)[@"http://www.yahoo.com/index.html" stringByDeletingLastPathComponent];

我期望 s 的结果是

http://www.yahoo.com

但是上面显示的代码是:

http:/www.yahoo.com

欢迎您发表评论

最佳答案

您应该使用NSURL,而不是NSString:

NSURL *url = [[NSURL URLWithString:@"http://www.yahoo.com/index.html"] URLByDeletingLastPathComponent];

产量:

http://www.yahoo.com/

如果您绝对需要其中的字符串,则可以执行以下操作:

NSString *urlString = url.absoluteString;

或者,如果您确实需要一个可变字符串,请不要将其转换为 NSMutableString,而是创建一个可变副本:

NSMutableString *urlString = [url.absoluteString mutableCopy];

但是,一般来说,在可能的情况下,在处理 URL 时应该继续使用 NSURL。当想要使用文件路径时,请改用文件 URL。

关于objective-c - 被 stringByDeletingLastPathComponent 的子字符串结果混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54789939/

相关文章:

objective-c - 简单的写入文件对我来说不起作用

objective-c - JSONKit 无法从 php 解析简单的 JSON?

objective-c - NSDateComponents 问题 - 日期不正确

cocoa - 每次更改 Core Data MO 中的另一个属性时重新计算属性

Cocoa 数据层次结构和浏览器

objective-c - NSTableViewDataSource 还是 NSArrayController?

php - 403 禁止错误 Objective c to PHP

iphone - Objective-C 代码中未找到 windowScriptObject 方法

ios - UICollectionViewCell 中的 subview Controller

objective-c - 如何在 Objective-C 中初始化窗口?