我試圖做這樣的事情:如何在swift方便初始值設定項中返回自定義對象?
public extension UIImage {
public convenience init(whatever: Int) {
UIGraphicsBeginImageContextWithOptions(...)
//...
let image = UIGraphicsGetImageFromCurrentContext()
UIGraphicsEndImageContext()
return image // <- impossible
}
}
但是,這是不可能的,因爲「無」是一個初始化的唯一有效的回報......我該怎麼辦呢?例如,Objtive-C方法[UIImage imageNamed:]是一個類方法(它可以在Objective-C中返回任何它想要的),並將其映射到swift初始化程序UIImage(named :)。
這是一個有點傷心你不能在Swift中返回一個不同的對象。我有這個框架,在故事板中定義了這個複雜的視圖控制器。我想能夠覆蓋'init()'甚至創建一個自定義的初始化程序來以編程方式實例化視圖控制器,並使用它的子視圖/插口等來設置它。但唯一的方法是使用工廠方法.. 。 –