objective-c - 为什么使用 MKLocalSearch 会返回错误并且无法加载预期结果?

标签 objective-c macos cocoa mapkit osx-mavericks

我正在 Mavericks 中开发 Mac OS X 应用程序,但在执行以下代码时遇到错误:

MKLocalSearchRequest *request = [[MKLocalSearchRequest alloc] init];
request.naturalLanguageQuery = @"Pizza Hut";
MKLocalSearch *search = [[MKLocalSearch alloc] initWithRequest:request];

[search startWithCompletionHandler:^(MKLocalSearchResponse *response, NSError *error) {
    if (response.mapItems.count == 0)
        NSLog(@"No Matches");
    else
        for (MKMapItem *item in response.mapItems) {
            NSLog(@"name = %@", item.name);
        }
}];

我只是尝试使用 MKLocalSearch 搜索“Pizza Hut”,而没有在 MKLocalSearchRequest 上设置任何 region 这样我就可以获得全局结果,不仅仅是我附近的地方。但是这段代码无法执行,我在控制台中收到以下错误:

PBRequester failed with Error Error Domain=NSPOSIXErrorDomain Code=1 "The operation couldn’t be completed. Operation not permitted" UserInfo=0x60800067d680 {NSErrorFailingURLStringKey=https://gsp-ssl.ls.apple.com/search.arpc, NSErrorFailingURLKey=https://gsp-ssl.ls.apple.com/search.arpc}

因此,“No Matches” 打印在我的控制台中。
关于为什么会发生这种情况的任何想法?我在 Capabilites 中打开了 map ,我有 MapKit.framework 并且我的权利中有 com.apple.developer.map 键.这里缺少什么吗?谢谢!

最佳答案

我必须启用“传出连接(客户端)”网络权限才能使位置服务正常工作。

我使用 MKLocalSearch 的 OS X 应用程序的最小授权文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.security.app-sandbox</key>
    <true/>
    <key>com.apple.security.network.client</key>
    <true/>
    <key>com.apple.security.personal-information.location</key>
    <true/>
</dict>
</plist>

遗憾的是 Apple 的 Entitlement Key Reference没有提到这个。也许我们应该提交文档错误。

此外,用于代码签名的配置文件(检查目标中的“build设置”)必须启用“ map ”服务。您可以在 Developer Portal 的“Certificates, Identifiers & Profiles”部分查看:

enter image description here

关于objective-c - 为什么使用 MKLocalSearch 会返回错误并且无法加载预期结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22185980/

相关文章:

macos - 从 Mac Automator 运行 Shell 脚本

c++ - 如何在lldb中显示完整的文件名

macos - 启动应用程序时出现错误 "Library not loaded"

ios - NSJSONSerialization 输出数字为 float ?

ios - 我如何布置 3 个标签以使其具有所需的高度,然后让 UIImage 占据房间的其余部分?

ios - 如何编写自定义 UILabel 类

iphone - 自定义分组表单元格

python - 错误加载 MySQLdb 模块 : python3. 5 + Django + mysqlclient OSX

cocoa - 如何在没有 Accessibility API 的情况下在 Mac OS 中获取另一个应用程序窗口的标题、位置和大小?

Objective-C 继承和类型转换