2
Можно ли сделать struct
и/или typealias
соответствовать @objc
? Я хочу создать дополнительные функции протокола, один возвращает struct
, а другой - typealias
.Как сделать структуру и титалии соответствовать @objc
public typealias SwiperData = (image: UIImage, title: String)
public struct SwiperPeekViewControllers{
public var parentViewController: UIViewController!
public var contentViewController: UIViewController!
public init(parentVC: UIViewController, contentVC: UIViewController){
parentViewController = parentVC
contentViewController = contentVC
}
}
протокол
@objc public protocol SwiperPeekViewDelegate: class{
func didUndoAction(index: Int, dataSource: SwiperData)
// Method cannot be a member of an @objc protocol because the type of the parameter 2 cannot be represented in Objective-C
func swiperPeekViewControllers()->SwiperPeekViewControllers
func swiperPeekViewSize()->CGSize
}
Срочной структуры является типом значения, и не может быть совместим с Objective-C объект, который является ссылочным типом. – gnasher729
См. [Совместимость типов Swift] (https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/InteractingWithObjective-CAPIs.html#//apple_ref/doc/uid/TP40014216-CH4-ID53) в руководстве _Using Swift с руководством Cocoa и Objective-C_, что исключает использование некоторых конструкций Swift из Objective-C, включая «Структуры, определенные в Swift», «Typealiases, определенные в Swift» и «Tuples». – Rob
Спасибо за ссылку @Rob – kye