在其他文件

时间:2015-05-28 08:51:57

标签: swift

我有一个新创建的运算符?=

    infix operator ?= {}
    func ?=<T>(inout lhs: T?, rhs: T) {
        if lhs == nil {
            lhs = rhs
        }
    }

这是在该文件的全局范围内的某个utils.swift文件中声明的。 然后,我尝试在另一个文件中的某个类函数中使用新创建的运算符:

imageView.image ?= avatarDefault

基本上我想将avatarDefault设置为imageView.image,前提是它nil ... 这会导致编译错误:Operator is not a known binary operator

当我尝试在同一个文件(infix operator ?= {})中再次声明它但仍保留另一个声明和func中的utils.swift时 - 它会编译,并且有效... < / p>

我的问题是 - 为什么我不能在文件中声明运算符(即utils.swift)然后在整个应用程序中使用它?

1 个答案:

答案 0 :(得分:0)

您可以通过不同的文件使用自定义运算符,您可能会错过的是在创建utils文件时添加utils.swift来构建目标。要解决此问题,请转到项目构建阶段并将utils.swift添加到编译源