I'm trying to convert a category in Objective C to swift. I'm not too familiar with even Objective C categories, and now I'm getting the error: "Cannot convert value of type 'SelectionBlock!' to expected argument type of 'AnyObject!'", and I'm not sure where to go from here.
我正在尝试将Objective C中的类别转换为swift。我对Objective C类别不太熟悉,现在我收到错误:“无法转换'SelectionBlock'类型的值!'预期的参数类型'AnyObject!'“,我不知道从哪里开始。
import Foundation
import MapKit
import ObjectiveC
var AssociatedObjectHandle: UInt8 = 0
extension MKPointAnnotation {
typealias SelectionBlock = () -> Void
var selectionBlock: SelectionBlock! {
get {
return objc_getAssociatedObject(self, &AssociatedObjectHandle) as! SelectionBlock
}
set(selectionBlock) {
objc_setAssociatedObject(self, &AssociatedObjectHandle, selectionBlock, objc_AssociationPolicy.OBJC_ASSOCIATION_COPY)
}
}
}
1 个解决方案
#1
0
Caroline, try to force making selectionBlock in to AnyObject
Caroline,尝试强制将chooseBlock放入AnyObject
extension MKPointAnnotation {
typealias SelectionBlock = () -> Void
var selectionBlock: SelectionBlock! {
get {
return objc_getAssociatedObject(self, &AssociatedObjectHandle) as! SelectionBlock
}
set(selectionBlock) {
objc_setAssociatedObject(self, &AssociatedObjectHandle, selectionBlock as! AnyObject, objc_AssociationPolicy.OBJC_ASSOCIATION_COPY)
}
}
}
#1
0
Caroline, try to force making selectionBlock in to AnyObject
Caroline,尝试强制将chooseBlock放入AnyObject
extension MKPointAnnotation {
typealias SelectionBlock = () -> Void
var selectionBlock: SelectionBlock! {
get {
return objc_getAssociatedObject(self, &AssociatedObjectHandle) as! SelectionBlock
}
set(selectionBlock) {
objc_setAssociatedObject(self, &AssociatedObjectHandle, selectionBlock as! AnyObject, objc_AssociationPolicy.OBJC_ASSOCIATION_COPY)
}
}
}