2

我正在尝试使用Sourcery来扩展一些库。我几乎成功了,但在某些时候我有一个类型,从一个 func 返回,它是一个可选的。我想让它变成非可选的。为此,我必须了解如何删除问号,但在我看来,语言不支持它。如果它可以以某种方式提供帮助,我的脚本如下:

{% for type in types.structs %}
    {% if type.name == "_R" %}
        {% for innerType in type.containedTypes %}
            {% if innerType.name == "_R.nib" %}
                {% for nib in innerType.containedTypes %}
extension {{ nib.name }} {
                    {% for method in nib.methods %}
                        {% if method.selectorName == "firstView(owner:options:)" %}
    func firstView(owner ownerOrNil: AnyObject?, options optionsOrNil: [NSObject : AnyObject]? = nil) ->
    {{ method.returnTypeName }}
    {
        return instantiate(withOwner: ownerOrNil, options: optionsOrNil)[0] as? {{ method.returnTypeName }}
    }
                        {% endif %}
                    {% endfor %}
}

                {% endfor %}
            {% endif %}
        {% endfor %}
    {% endif %}
{% endfor %}

在这个地方,{{ method.returnTypeName }}我所有的返回类型都是可选的。我想删除问号。可能吗?

4

1 回答 1

4

.unwrappedTypeName使用我要删除的位置解决了问题?

于 2018-06-01T14:27:19.317 回答