我有一个新创建的运算符?=
:
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
)然后在整个应用程序中使用它?
答案 0 :(得分:0)
您可以通过不同的文件使用自定义运算符,您可能会错过的是在创建utils文件时添加utils.swift
来构建目标。要解决此问题,请转到项目构建阶段并将utils.swift
添加到编译源