Identifiable
协议,以便我可以将它们用作 SwiftUI
中的列表项。
@interface MyClass: NSObject // What to do?
@end
是否有一个不需要创建包装类(像这样)的好的替代方案?
class MyClassWrapper: Identifiable {
let id = UUID()
var myClass: MyClass
}
您可以使用
extension
来符合 Swift 中的 Identifiable
-- 然后只需指定哪个属性应用作 id
:
//obj-c
@interface MyClass : NSObject
@property (strong,nonatomic) NSString* myIdProperty;
@end
//Swift
extension MyClass : Identifiable {
public var id: String {
myIdProperty
}
}
我在这里使用了
NSString/String
,但您可以使用 NSUUID/UUID
或任何其他符合 Hashable
的 id
类型。