【问题标题】:how to convert completion viewcontroler code from objc into swift如何将完成视图控制器代码从 objc 转换为 swift
【发布时间】:2019-10-17 02:43:02
【问题描述】:
我需要快速为我的视图控制器进行初始化。那么如何在 swift 中创建类似的 init 方法。
- (instancetype)initWithFormlyData:(NSDictionary *)json afterUpdatingProfile:(void (^)(BOOL, BMErrors *))completion
{
self = [super initWithFormlyData:json];
if (self) {
self.updateCompletion = completion;
}
return self;
}
【问题讨论】:
标签:
objective-c
swift
closures
【解决方案1】:
这里有一个解决方案:
init(formlyData json: NSDictionary, afterUpdatingProfile completion: ((Bool, BMErrors?)->Void)?)
{
}
我冒昧地将完成的 BMErrors 设为可选,即使您的 ObjC 没有指定可为空。您可能希望其他参数也可以为空,因此请根据需要添加可选参数。
您可能只想简化为:
init(json: NSDictionary, completion: ((Bool, BMErrors?)->Void)?)
{
}
如果您的来电者不介意,也许可以考虑切换到 Swift 词典。
希望这会有所帮助!