gpt4 book ai didi

objective-c - 如何在快速便捷的初始化程序中返回自定义对象?

转载 作者:搜寻专家 更新时间:2023-10-31 22:14:43 24 4
gpt4 key购买 nike

我正在尝试做这样的事情:

public extension UIImage {
public convenience init(whatever: Int) {
UIGraphicsBeginImageContextWithOptions(...)

//...

let image = UIGraphicsGetImageFromCurrentContext()
UIGraphicsEndImageContext()

return image // <- impossible
}
}

但这是不可能的,因为“nil”是初始化程序的唯一有效返回...我该怎么做?

例如,Objtive-C 方法 [UIImage imageNamed:] 是一个类方法(它可以在 Objective-C 中返回它想要的任何东西)并且它被映射到 swift 初始化器 UIImage(named:)。

最佳答案

您需要的是类工厂方法,而不是初始化器。 Foundation/Cocoa 中的大多数工厂方法都会自动桥接到初始化器,但是如果你想要的东西不能通过 init 完成,你可以添加一个新的类方法:

public extension UIImage {
class func imageWithWhatever(whatever: Int) -> UIImage {
UIGraphicsBeginImageContextWithOptions(...)

//...

let image = UIGraphicsGetImageFromCurrentContext()
UIGraphicsEndImageContext()

return image
}
}

关于objective-c - 如何在快速便捷的初始化程序中返回自定义对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33220827/

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