Swift 类别:“无法将类型的值转换为预期的参数类型 'AnyObject!'
Swift category: "Cannot convert value of type to expected argument type 'AnyObject!'
我正在尝试将 Objective C 中的类别转换为 swift。我什至对 Objective C 类别都不太熟悉,现在我收到错误:"Cannot convert value of type 'SelectionBlock!' to expected argument type of '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)
}
}
}
Caroline,尝试强制将 selectionBlock 放入 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)
}
}
}
我正在尝试将 Objective C 中的类别转换为 swift。我什至对 Objective C 类别都不太熟悉,现在我收到错误:"Cannot convert value of type 'SelectionBlock!' to expected argument type of '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)
}
}
}
Caroline,尝试强制将 selectionBlock 放入 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)
}
}
}