
如题,
协议中的实例方法,是可以自动补全的,例如:
id<MainServiceProtocol> obj = [[SIMBeeHive shareInstance] createService:@protocol(MainServiceProtocol)]; obj tes // 这里会自动补全 MainServiceProtocol 协议中的实例方法 但如果是类方法,就无法自动补全,手打出来是没问题的:
Class<AClassServiceProtocol> aClassObj = [[SIMBeeHive shareInstance] createClassService:@protocol(AClassServiceProtocol)]; [(Class <AClassServiceProtocol>)aClassObj aClassMethod:@"" aStringParam2:@""]; // 这个方法是纯手打的 目前的猜想,xcode 的 Clang 自动补全压根没想过支持协议中的类方法,那有没有办法去修改 clang 去支持这个特性呢?
求指点!
1 iOCZS 2024-10-16 19:37:59 +08:00 应该也是支持的吧 |
2 wangyapu OP @iOCZS 你可以试下哈,我是尝试过,确实不行,并且去多处求证发现网上没有人讨论这个,才来发帖求助的 如果试过可以的话,求告知 |
3 iOCZS 2024-10-16 22:16:59 +08:00 |
5 iOCZS 2024-10-18 19:34:15 +08:00 @wangyapu 编译时能确定类型,就能有对应的提示。id<protocol>的时候,protocol 作为类型参考。但是 Class<protocol>这种是有问题的,因为它是有类型的,就是 Class ,这里我觉得 protocol 是多余的。 |