- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试启动 native map 应用程序并通过命令行工具在 OS X 中显示特定坐标。
我找到了三个选项:
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:url]];
open
命令并传递格式化的 URL,然后让系统自行计算。NSTask
通过 URL 启动 Maps.app。我尝试了第一个:
NSString *url = [NSString stringWithFormat:@"http://maps.apple.com/?q=%@&ll=%f,%f", user[@"realName"], geo.latitude, geo.longitude];
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:url]];
(产生完全有效的字符串)
但是这不起作用。它只是什么都不做。没有打开任何内容,没有错误,没有警告。然后我选择了第二个选项。我不知道如何执行第二个操作,因此我转向了 NSTask
。我找到了这个答案:https://stackoverflow.com/a/412573/811405 并且我已将此 URL 作为参数传递:http://maps.apple.com/?q=Example&ll=12.345,23.456
但我得到:
如何从 Cocoa 命令行工具打开具有特定点的 map ?
最佳答案
显然,您的 URL 字符串无效,因为其中包含空格。因此,[NSURL URLWithString:url]
返回nil
。
不要使用字符串格式来构建 URL。不要构建可能无效的 URL 字符串,然后尝试通过调用 -stringByAddingPercentEscapesUsingEncoding:
来修复它。您无法正确对整个 URL 字符串进行百分比转义编码。每个组件都有不同的需要转义的有效/无效字符。
最好的方法是使用 NSURLComponents
从各个部分构建 URL。
如果您不能这样做,请在 URL 的每个组件上使用 -stringByAddingPercentEncodingWithAllowedCharacters:
,然后再将它们连接在一起。对于查询组件,您将使用 URLQueryAllowedCharacterSet
。
关于objective-c - 从 Cocoa 命令行工具打开具有特定坐标的 OS X Apple map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31897125/
我是一名优秀的程序员,十分优秀!