现在Swift越来越被开发者所喜爱,用到的地方也越多,但是不可否认OC也有其特殊的「魔力」,所以有时候需要在Swift中调用OC的类或方法。调用并不难,利用桥接即可解决,但是有时候会碰到让人摸不着头脑的问题。
OC中的单例类方法 + (instancetype)manager 在Swift中会被忽略
所以在OC中 [SchoolManager manager]这样可以调用的方法,在Swift中使用SchoolManager.manager是无效的。
原因就是Xcode限制了Swift对OC初始化相关方法的调用。
解决方案
使用Xcode认可的关键字default,singleton,shared当前缀来声明OC的单例方法名。1
2
3+ (instancetype)defaultManager;
+ (instancetype)singletonManager;
+ (instancetype)sharedManager;
这样在Swift中可以使用.default, .singleton, .shared来生成相关单例。