我尝试使用Intents框架创建自定义CLPlacemark。 我正在导入' Intents'在文件开头。
我找到了这个解决方案:
let waypointLocation = CLLocation(latitude: 50.00, longitude: 8.00)
let waypointName = "Some Name"
let w1 = CLPlacemark.init(location: waypointLocation,
name: waypointName,
postalAddress: nil)
不幸的是,上面的代码给出了以下错误消息:
对成员&#init;(地标:)'
的模糊引用
任何想法有什么不对?
文档:
答案 0 :(得分:3)
刚刚发现,在iOS 12 / Xcode 10中,您还必须包括Contacts框架,因为postaladdress参数具有该初始化程序所需的类CNPostalAddress
import Intents
import Contacts
答案 1 :(得分:1)
通过继承CLPlacemark,可以使用 Intents 框架协议 init(location:name:postalAddress) 。
项目的某个地方:
class MyPlacemark: CLPlacemark {}
您创建自定义CLPlacemark的代码:
let placeLocation = CLLocation(latitude: 50.00, longitude: 8.00)
let placeName = "Some name"
let customPlacemark = MyPlacemark(location: w1Location, name: w1Name, postalAddress: nil)
答案 2 :(得分:0)
您需要使用
init(location:name:postalAddress);
placemarkWithLocation调用是Objective-C不快速,因此它抛出该错误消息。
在文档中,您将在右侧看到语言选择。 init(location:name:postalAddress
是您创建新地点标记所需的快速通话。
答案 3 :(得分:0)
您也可以替换MKPlacemark代替暴露更多初始值设定项(在http://szulctomasz.com/2015/07/01/ios-unit-testing-in-swift-and-clplacemark-mocking.html中找到)