大佬教程收集整理的这篇文章主要介绍了ios – 在Swift中对MKCircle进行子类化,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
最后我需要一个初始化器,它有3个参数:坐标,半径和代码.听起来很简单,但Swifts指定和便利的initalizers及其规则让我很难在这里.
问题是MKCircle的定义:
class MKCircle : MKShape,MKOverlay,MKAnnotation,NSObjectProtocol { convenience init(centerCoordinate coord: CLLOCATIOnCoordinate2D,radius: CLLOCATIOnDistancE) convenience init(mapRect: MKMapRect) // radius will be determined from MAX(width,height) var coordinate: CLLOCATIOnCoordinate2D { get } var radius: CLLOCATIOnDistance { get } var boundingMapRect: MKMapRect { get } }
正如您所看到的,MKCircle的初始化器采用坐标和半径是一个方便的初始化器,因此无法从我的子类的初始化器调用.此属性也是只读的,因此我无法从子类的初始值设置器或外部设置它们.
我尝试了很多变化,但似乎唯一可行的方法是使我的代码属性成为可选,使用继承的便利初始化程序来设置坐标和半径,然后设置代码属性,如下所示:
class MyCircle: MKCircle { var code: String? } overlay = MyCircle(centerCoordinate: coord,radius: radius) overlay.code = code
我错过了什么?有没有办法定义一个单一的便利初始化器,在这种情况下需要3个参数?
提前谢谢了!
以上是大佬教程为你收集整理的ios – 在Swift中对MKCircle进行子类化全部内容,希望文章能够帮你解决ios – 在Swift中对MKCircle进行子类化所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。