Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift MKLocalSearch结果的唯一ID?_Swift_Mapkit_Mklocalsearch - Fatal编程技术网

Swift MKLocalSearch结果的唯一ID?

Swift MKLocalSearch结果的唯一ID?,swift,mapkit,mklocalsearch,Swift,Mapkit,Mklocalsearch,我的应用程序显示MKLocalSearch查询的结果 用户可以选择这样一个地方并说“我喜欢这个地方” 当用户再次搜索时(关闭应用程序后),我的应用程序如何知道用户已经喜欢这个地方 结果中是否存在不依赖于区域设置(下一次搜索时相同)和唯一性(同一位置的其他位置不共享)的内容 您应该将电话号码作为响应的一部分返回,您可以将其用作位置的唯一ID。视情况而定,如何实现用户“喜欢这个地方”。我想你必须将用户喜欢的地方存储在核心数据或类似的东西中,所以只要获取这些结果并根据需要引用它们就行了。我使用核心数据

我的应用程序显示
MKLocalSearch
查询的结果

用户可以选择这样一个地方并说“我喜欢这个地方”

当用户再次搜索时(关闭应用程序后),我的应用程序如何知道用户已经喜欢这个地方

结果中是否存在不依赖于区域设置(下一次搜索时相同)和唯一性(同一位置的其他位置不共享)的内容


您应该将电话号码作为响应的一部分返回,您可以将其用作位置的唯一ID。

视情况而定,如何实现用户“喜欢这个地方”。我想你必须将用户喜欢的地方存储在核心数据或类似的东西中,所以只要获取这些结果并根据需要引用它们就行了。我使用核心数据,但这不是问题所在。问题在于下次调用
MKLocalSearchRequest()
时如何识别结果。从核心数据中获取喜欢的位置列表,执行MKLocalSearchRequest,并检查核心数据集中是否存在任何返回的完整字符串。看起来查询的结果只是匹配字符串的列表,没有唯一的idI已经这样做了。问题是:当我没有唯一ID时,我可以使用哪些字符串或任何东西来比较?我可能误解了这里的意思,但是
MKLocalSearchRequest
有一个完成处理程序
https://developer.apple.com/documentation/mapkit/mklocalsearchcompleter
返回标题、副标题和匹配范围。所以你唯一的选择就是使用标题或者使用不同的方法。也许是一个或地理编码。如果我搜索“苹果头”,我可能会得到一个结果苹果总部,库比蒂诺。所以我喜欢这样,如果我做一个类似的搜索,相同的文本可能会在列表中返回。因此,将我的苹果总部Cupertino与结果进行比较。这是一个很好的答案,尽管一个城市的不同游客信息点通常共享同一个电话号码。我喜欢电话号码不依赖于地区。
        let request = MKLocalSearchRequest()
        request.region = mapView.region
        request.naturalLanguageQuery = query
        let search = MKLocalSearch(request: request)
        search.start { (response, error) in
            // do I know some items in the response?
        }