gpt4 book ai didi

swift - 在 Swift 中创建运行时已知类的实例

转载 作者:IT王子 更新时间:2023-10-29 05:44:38 25 4
gpt4 key购买 nike

一图胜千言,这段代码如何从Objective-C改写成Swift?

- (id) instanceOfClass: (Class) class withInitializer: (SEL) initializerSelector withObject: (id) object {
id obj = nil;
if([class instancesRespondToSelector:initializerSelector]) {
obj = [[class alloc] performSelector:initializerSelector
withObject:object];
}
return obj;
}

id myViewController = [self instanceOfClass:[ViewController class]
withInitializer:@selector(initWithObject:)
withObject:@"super-string!"];
NSLog(@"%@", myViewController);

最佳答案

这不能纯粹在 Swift 中完成。您只能通过在 Objective C 中创建“按名称创建者的类实例”并从 Swift 调用此代码来完成此操作。

有关更多信息,您可以阅读本文。 http://ijoshsmith.com/2014/06/05/instantiating-classes-by-name-in-swift/

并查看这个 github 存储库 https://github.com/ijoshsmith/swift-factory

关于swift - 在 Swift 中创建运行时已知类的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27839060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com