在努力将Google Cast SDK
实施到iOS应用程序中时,我遇到了这个问题并且无法提出可扩展,高效的解决方案,但是有点想法比我必须能够给我一些想法:
Google的Chromecast iOS SDK附带GCKDeviceScanner
类,用于管理可用投射接收器(即Chromecast HDMI加密狗)的发现。为了与此相抗衡,显然最好是将Chromecast插入开机电视的房间。
但是,这可能并非总是可行,也不依赖于可用的网络资源使代码易于测试。为了解决这个问题,我创建了MockGCKDeviceScanner
(GCKDeviceScanner
的子类)并覆盖了适用的方法以返回虚假接收设备进行开发/测试。现在我能够继续编码,即使没有物理接收器可用。
但我发现融入我的实际课程相当繁琐。在上面的例子中,我有一个
@property (nonatomic, strong) GCKDeviceScanner *scanner
然而,在实际初始化时,我做了这个相当丑陋的解决方法:
#ifdef kDevMode
_scanner = [[MockGCKDeviceScanner alloc] init];
#else
_scanner = [[GCKDeviceScanner alloc] init];
#endif
这看起来并不好......并且使我的代码看起来非常麻烦。 正确做这种事的方式是什么?