Ios 有没有一种方法可以在具有与全局函数名称相同的方法的类中调用全局函数?
下面的代码给出了一个错误,因为它试图调用类的方法而不是全局函数:Ios 有没有一种方法可以在具有与全局函数名称相同的方法的类中调用全局函数?,ios,swift,swift2,Ios,Swift,Swift2,下面的代码给出了一个错误,因为它试图调用类的方法而不是全局函数: func a(i: Int) -> Int { return i + 10 } class B { func a(s: String) -> String { return s + "bbb" } func b() { print(a(100)) // Error (Cannot convert value of type 'Int
func a(i: Int) -> Int {
return i + 10
}
class B {
func a(s: String) -> String {
return s + "bbb"
}
func b() {
print(a(100))
// Error (Cannot convert value of type 'Int' to expected argument type 'String')
}
}
我的建议是将全局函数保存在如下类中:
class Global {
static func a(i: Int) -> Int {
return i + 10
}
}
class B {
func a(s: String) -> String {
return s + "bbb"
}
func b() {
print(Global.a(100))
}
}
这样,您的代码可读性更高,编译器也不会感到困惑。是的,确实如此。例如,如果应用程序的名称为“myApp”,则可以调用全局函数,该函数与类
B
中的函数具有相同的名称和参数数,如下所示:
func b()
{
print(myApp.a(100))
}
谢谢这是一个很大的帮助。我很高兴得到这个答案,但是我的天,你真的想这么做吗?我有一个util文件,其中包含一些全局有用的函数,这些函数应该在整个项目中使用,比如调试、记录和错误处理等,就像Obj-C中的宏一样。我知道这可能是一个不好的做法,尽管项目相当小。最好对函数进行分类并将它们放入适当的类中。