Err*_*520 13 protocols ios swift
我在Swift中创建符合协议的扩展时遇到了问题.
在Objective-C中,我可以创建一个符合协议的类别:
SomeProtocol.h
@protocol SomeProtocol
...
@end
Run Code Online (Sandbox Code Playgroud)
UIView的+类别名称
#import SomeProtocol.h
@interface UIView (CategoryName) <SomeProtocol>
...
@end
Run Code Online (Sandbox Code Playgroud)
我试图通过Swift扩展实现相同的功能
SomeProtocol.swift
protocol SomeProtocol {
...
}
Run Code Online (Sandbox Code Playgroud)
UIView扩展
import UIKit
extension UIView : SomeProtocol {
...
}
Run Code Online (Sandbox Code Playgroud)
我收到以下编译器错误:
类型'UIView'不符合协议'SomeProtocol'
kur*_*718 20
请仔细检查您的扩展程序是否已实现协议中定义的所有方法.如果未实现函数a,那么将获得您列出的编译器错误.
protocol SomeProtocol {
func a()
}
extension UIView : SomeProtocol {
func a() {
// some code
}
}
Run Code Online (Sandbox Code Playgroud)
小智 10
//**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)
Run Code Online (Sandbox Code Playgroud)
结果:符合协议的扩展
希望能帮助到你..!
| 归档时间: |
|
| 查看次数: |
15060 次 |
| 最近记录: |