在 Objective-C 中获取 NSURL 的一部分

2023-12-15

我有一个 NSString ,其值为

http://digg.com/news/business/24hr

如何获得第三级之前的所有内容?

http://digg.com/news/

请注意,这不完全是第三层。 URL 的分割方式如下:

  • 协议或方案(这里,http)
  • the ://分隔符
  • 用户名和密码(这里没有,但也可以是username:password@hostname)
  • 主机名(这里,digg.com)
  • 端口(即:80例如在域名之后)
  • 路径(这里,/news/business/24hr)
  • 参数字符串(分号后面的任何内容)
  • 查询字符串(如果您有 GET 参数,例如?foo=bar&baz=frob)
  • 片段(如果您在链接中有一个锚点,例如#foobar).

一个“功能齐全”的 URL 看起来像这样:

http://foobar:nica[email protected]:8080/some/path/file.html;params-here?foo=bar#baz

NSURL拥有广泛的访问器。您可以在文档中查看它们NSURL班级、部门访问 URL 的部分内容。快速参考:

  • -[NSURL scheme] = http
  • -[NSURL resourceSpecifier]=(从 // 到 URL 末尾的所有内容)
  • -[NSURL user]= 富巴
  • -[NSURL password]= 尼卡特
  • -[NSURL host]= example.com
  • -[NSURL port] = 8080
  • -[NSURL path]= /some/path/file.html
  • -[NSURL pathComponents]= @["/", "some", "path", "file.html"] (注意首字母 / 是其中的一部分)
  • -[NSURL lastPathComponent]= 文件.html
  • -[NSURL pathExtension] = html
  • -[NSURL parameterString]= 参数-此处
  • -[NSURL query]= 富=酒吧
  • -[NSURL fragment] = baz

不过,你想要的是这样的:

NSURL* url = [NSURL URLWithString:@"http://digg.com/news/business/24hr"];
NSString* reducedUrl = [NSString stringWithFormat:
    @"%@://%@/%@",
    url.scheme,
    url.host,
    url.pathComponents[1]];

对于您的示例 URL,您似乎想要的是协议、主机和第一个路径组件。 (由返回的数组中索引 0 处的元素-[NSString pathComponents]只是“/”,因此您需要索引为 1 的元素。其他斜杠将被丢弃。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Objective-C 中获取 NSURL 的一部分 的相关文章

随机推荐

  • 两个数相除总是等于零?

    在我的 Xna 游戏中 我试图将我的游戏场缩放到它运行的屏幕上 为此 我使用比例来查找实际窗口相对于我的游戏区域缩放的百分比 为此 我将实际宽度除以虚拟宽度 float percent realViewport Width this vie
  • 如何从joomla模块中的ajax获取数据库值?

    我正在创建一个模块 我想从 ajax 获取数据库值 任何人有这个问题的解决方案或任何例子请帮助我 谁能给我一个正确的方法来解决这个问题 这是我的jquery code jQuery type bind click function var
  • 使用 std::tr1::function (或 boost::function)创建多播事件

    我正在尝试使用 TR1 的功能创建类似 C 的多播委托和事件 或者 Boost 因为 boost function 大部分 与 std tr1 function 相同 作为概念证明 我尝试了以下方法 template
  • wxPython 带有面板的框架的最小尺寸

    wxpython 2 8 11 0 python 2 7 如果我放一些Sizer一些控件直接进入Frame like import wx app wx App frm wx Frame None title title sizer wx B
  • 如何检查一个数组中的任何变量是否在另一个数组中

    我正在使用 MatLab 开发一个程序 该程序计算数字的幂 将它们加在一起 然后查看第一组数字 数字的幂 是否等于任何相加的数字的幂 我试图检查第一个数组中的每个值 但是 我得到如下输出 m 1 128 2187 16384 78125 2
  • Netsuite suitetalk 交易电子邮件,带有 pdf 附件介绍文本

    我使用 php 工具包和 netsuite 来添加带有 toBeEmailed 选项的销售订单 并且它登录的 api 用户具有首选项 交易电子邮件附件格式 gt PDF 这会将订单摘要制作为 pdf 并附加到电子邮件中并作为通知发送 我查看
  • Windows MessageBox 忽略 WM_CLOSE

    我们有一个遗留的 C Windows 应用程序 当发生致命连接错误时 它会通过 MessageBox 调用弹出一个模式窗口 我们的网络工程师可能会同时运行许多这样的应用程序 有时 网络故障会导致这些应用程序处理的连接同时失败 在 Windo
  • 从数组中删除重复项

    您好 我有一个使用此函数从 XML 文件创建的数组 LOCATIONS XML HANDLER creates array holding values of field selected from XML string xml param
  • 是否可以从 android 调用 WSHTTPBINDING?

    private static final String SOAP ACTION http tempuri org IService1 HelloTest private static final String METHOD NAME Hel
  • 如何使用 C# 禁用文本框上的复制、粘贴和删除功能

    有人可以建议如何使用 C 处理 WinForms 中文本框上的剪切 复制和粘贴事件吗 在 WinForms 中 禁用文本框上的剪切 复制和粘贴功能的最简单方法是将 ShortcutsEnabled 属性设置为 false
  • 如何在 MDX 中使用 UNION

    我想要UNION下面MDX询问 对于这两个查询 同一日期范围的度量和维度是不同的 请帮助我摆脱困境 SELECT NON EMPTY Measures Number of es2 ON COLUMNS NON EMPTY Date Year
  • 如何按升序对奇数数组进行排序,但将偶数保留在其位置?

    我只想对奇数进行排序而不移动偶数 例如 当我写 sortArray 5 3 2 8 1 4 预期结果是 1 3 2 8 5 4 我是 JavaScript 新手 在互联网上遇到了一个令我困惑的挑战 我通常不会在互联网上发布请求解决方案 但我
  • 带yield的递归函数不返回任何内容

    我正在尝试创建一个用于排列目的的生成器 我知道在 Python 中还有其他方法可以做到这一点 但这是为了别的事情 不幸的是 我无法产生这些值 你能帮我吗 def perm s p 0 ii 0 l len s s list s if l 1
  • HTML5 音频加载

    当音频标签准备好播放时如何获得回调 在实现我自己的控件时告诉用户 使用 Chrome 仅在视频元素上执行此操作 但它应该适用于音频 首先 你不能绑定事件 我不知道为什么这不起作用 所以必须使用setTimeout 使用 jQuery 的示例
  • boost 中的共享内存向量

    我有以下代码 尝试拥有一个具有字符串和数组结构的共享内存向量 但是当我编译代码时出现错误 usr local include boost container vector hpp 1819 4 error no matching funct
  • 在标题中隐藏类类型

    我不确定这是否可能 但这里是 我有一个库 其界面充其量是复杂的 不幸的是 它不仅是一个第三方库 而且太大而无法重写 而且我还使用了一些依赖于它的其他库 因此该界面必须保持原样 为了解决这个问题 我试图从本质上包装接口并将所有依赖项的接口捆绑
  • OPOS PosExplorer.GetDevice() 在 Windows 服务中执行时返回 null

    下面的代码片段利用 OPOS NET 打开 POS 打印机进行打印 当作为独立应用程序的一部分执行时 它工作得很好 当由 Windows 服务执行时 对 GetDevice 的调用始终返回 null explorer new PosExpl
  • Spring boot应用程序启动时如何缓存数据

    我有一个连接到 SQL Server 数据库的 Spring boot 应用程序 我需要一些帮助来在我的应用程序中使用缓存 我有一个 CodeCategory 表 其中包含许多代码的代码列表 该表将每月加载一次 并且数据每月仅更改一次 我想
  • Inno安装程序更改Setup.tmp的任务管理器描述

    我已经怀疑这是不可能的 并且可能是硬编码的 需要修改 Inno Setup 源代码 但是 Inno Setup 非常灵活 所以也许有办法吗 是否可以将与Setup exe 一起运行的Setup tmp 的Windows 任务管理器描述字段中
  • 在 Objective-C 中获取 NSURL 的一部分

    我有一个 NSString 其值为 http digg com news business 24hr 如何获得第三级之前的所有内容 http digg com news 请注意 这不完全是第三层 URL 的分割方式如下 协议或方案 这里 h