gpt4 book ai didi

Swift:可选值中的可选文本

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

如何在不强制 ! 的情况下删除可选值上的 Optional("") 文本。

更新

// I have somthing like this declared outside class
// I put question mark wrapper since I don't know when this session might have a value
var url = "\(self.session?.apiURL)/api/products.json"

// private session
private var _session:Session?

class MyClass
{
.
.
.


// the value of apiURL depends on session, session has optional value and declared as
// custom lazy loaded var session
var session:Session?
{
get
{
if _session == nil
{
_session = // fetch from coredata store if there is an active session. Might return nil

// if no active session
if _session == nil
{
// I just print "No active session"
}
}

// return _session may or may not contain any value
return _session
}
}
}

当 session 有一个值时,url 有一个值:

Optional("my_api_url_here")/api/products.json

最佳答案

您可以使用这个 pod http://cocoapods.org/pods/NoOptionalInterpolation .

或者,将此代码添加到您的项目以删除字符串插值中的 Optional(...) 和 nil 文本:

public protocol Unwrappable {
func unwrap() -> Any?
}

extension Optional: Unwrappable {
public func unwrap() -> Any? {
switch self {
case .None:
return nil
case .Some(let unwrappable as Unwrappable):
return unwrappable.unwrap()
case .Some (let some):
return some
}
}
}

public extension String {
init(stringInterpolationSegment expr: Unwrappable) {
self = String(expr.unwrap() ?? "")
}
}

请注意,简单地覆盖 Optionaldescription 函数将不适用于字符串插值,尽管它适用于 print

关于Swift:可选值中的可选文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25779392/

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