我试图在swift中为我们的应用程序创建一个简单的依赖注入系统,现在为期2天.我对任何解决方案都很灵活,但我想要一些东西,所以我可以说"给我一个符合这个协议的东西的实例",只要它符合上述协议,返回的实际类型就可以是任何东西.我已经尝试了很多东西,包括泛型,但设法弄清楚那不能(?)真的有用,所以现在我已经完成了基本的工作,如下所示:
protocol AProtocol {
}
class AClass: AProtocol {
}
class MyDiThing {
public static func objectConformingTo(aProtocol: Any) -> Any? {
// And here I want to do something like
if AClass is aProtocol {
return AClass()
}
return nil
}
}
// The calling code ..
let aObject = MyDIThing.objectConformingTo(AProtocol)
Run Code Online (Sandbox Code Playgroud)
我知道,它并不漂亮,但是现在我不是那么挑剔性能/坏代码,只要它解决了解耦问题(最好能包含在MyDIThing类中).如果这是不可能的,我会对其他解决方案持开放态度.我使用了类似于objective-c的解决方案并取得了很好的成功,只需要一个字典,其中键是NSStringFromProtocol,值是类,使用入站协议下载字典并实例化类.超级简单.很快就感觉不可能!
我有一个iOS和Android应用程序,我可以从firebase控制台发送推送通知.我在分析部分创建了一个受众群体.现在,如果我创建推送消息,我想我应该能够在推送消息的目标部分中选择那些受众.但当然我不能,我只看到两个默认观众"购买者"和"所有用户".我错过了什么?