繁体   English   中英

符合协议的Swift扩展

[英]Swift extension that conforms to protocol

我无法在Swift中创建符合协议的扩展。

在Objective-C中,我可以创建一个符合协议的类别:

SomeProtocol.h

@protocol SomeProtocol
...
@end

UIView +类别名称

#import SomeProtocol.h
@interface UIView (CategoryName) <SomeProtocol>
...
@end

我正在尝试通过Swift扩展实现相同的目的

SomeProtocol.swift

protocol SomeProtocol {
    ...
}

UIView扩展

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)

结果:符合协议的扩展

希望能帮助到你..!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM