ios - 符合协议(protocol)的 Swift 扩展

标签 ios swift protocols

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

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

SomeProtocol.h

@protocol SomeProtocol
...
@end

UIView+CategoryName

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

我正在尝试使用 Swift 扩展实现相同的目的

SomeProtocol.swift

protocol SomeProtocol {
    ...
}

UIView 扩展

import UIKit
extension UIView : SomeProtocol {
...
}

我收到以下编译器错误:

Type 'UIView' does not conform to protocol 'SomeProtocol'

最佳答案

请仔细检查您的扩展程序是否已实现协议(protocol)中定义的所有方法。如果未实现函数 a,则会出现您列出的编译器错误。

protocol SomeProtocol {
    func a()
}

extension UIView : SomeProtocol {
    func a() {
        // some code
    }
}

关于ios - 符合协议(protocol)的 Swift 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24900513/

相关文章:

ios - 如何通过URL获取SVN日志信息

ios - 如何使用 Swift 获取我周围的 wifi 连接列表及其 RSSI 强度?

ios - 删除状态栏文本,如 SWIFT 中的 iOS Gmail 应用程序

cocoa - 在构造函数中传递 Controller 总是不好的做法吗?

swift - 调用不带参数的泛型函数

ios - 如何获取表当前所有行信息

php - .htaccess URL 重写在 Safari/iPad/iOS 上失败

ios - iOS 13 和 Xcode 11 的布局问题

Swift - 协议(protocol)中带有 where 子句的关联类型?

python - 如何使用结构模式匹配检测可散列类型?