プロトコルに準拠する拡張機能をSwiftで作成するのに問題があります。
Objective-Cでは、プロトコルに準拠したカテゴリを作成できます。
SomeProtocol.h
@protocol SomeProtocol
...
@end
IView + CategoryName
#import SomeProtocol.h
@interface UIView (CategoryName) <SomeProtocol>
...
@end
私はSwift Extensionで同じことを達成しようとしています
SomeProtocol.Swift
protocol SomeProtocol {
...
}
IView拡張機能
import UIKit
extension UIView : SomeProtocol {
...
}
次のコンパイラエラーが発生します。
タイプ「UIView」はプロトコル「SomeProtocol」に準拠していません
プロトコルで定義されているすべてのメソッドを実装したことを拡張機能で再確認してください。関数aが実装されていない場合は、リストしたコンパイラエラーが発生します。
protocol SomeProtocol {
func a()
}
extension UIView : SomeProtocol {
func a() {
// some code
}
}
//**Create a Protocol:**
protocol ExampleProtocol {
var simpleDescription: String { get }
func adjust()-> String
}
//**Create a simple Class:**
class SimpleClass {
}
//**Create an extension:**
extension SimpleClass: ExampleProtocol {
var simpleDescription: String {
return "The number \(self)"
}
func adjust()-> String {
return "Extension that conforms to a protocol"
}
}
var obj = SimpleClass() //Create an instance of a class
println(obj.adjust()) //Access and print the method of extension using class instance(obj)
結果:プロトコルに準拠した拡張機能
それが役に立てば幸い..!