UIButton.在Swift和Objective-C中配置



我注意到,UIButtonconfiguration属性在Swift和Objective-C中实现(?)不同。在UIButton头configurationUIButtonConfiguration类型,这是一个类。

@property (nonatomic, readwrite, copy, nullable) UIButtonConfiguration *configuration API_AVAILABLE(ios(15.0), tvos(15.0)) API_UNAVAILABLE(watchOS);
@interface UIButtonConfiguration : NSObject <NSCopying, NSSecureCoding>

而在Swift中configuration的类型是UIButton.Configuration,这是一个结构体:

@MainActor public var configuration: UIButton.Configuration?
public struct Configuration : Hashable { ... }

为什么为swift生成的UIKit头文件不只是"翻译"?和斯威夫特一对一?为什么在这种情况下configuration的类型必须是不同的?

Objective-C不支持Swift嵌套类型

总的来说,自从引入Swift以来,UIKit在某些方面已经被"swiftyfied"以提高易用性,Swift团队称之为"大重命名"。

最新更新