V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
wangyapu
V2EX  ›  iDev

OC 的协议中的类方法,无法让 xcode 自动补全

  •  
  •   wangyapu · 1 天前 · 488 次点击

    如题,

    协议中的实例方法,是可以自动补全的,例如:

    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 去支持这个特性呢?

    求指点!

    3 条回复    2024-10-16 22:16:59 +08:00
    iOCZS
        1
    iOCZS  
       1 天前
    应该也是支持的吧
    wangyapu
        2
    wangyapu  
    OP
       1 天前
    @iOCZS 你可以试下哈,我是尝试过,确实不行,并且去多处求证发现网上没有人讨论这个,才来发帖求助的😂 如果试过可以的话,求告知
    iOCZS
        3
    iOCZS  
       1 天前
    @protocol TestProtocol <NSObject>

    +(void)test;

    @end

    @interface HelloGLKitViewController : GLKViewController<TestProtocol>

    @end

    [HelloGLKitViewController test]是有提示的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1107 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 730ms · UTC 19:16 · PVG 03:16 · LAX 12:16 · JFK 15:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.