首页 > 解决方案 > 如果未设置变量,有没有办法在 Xcode 自动完成中隐藏方法?

问题描述

我正在创建一个可以包含 aNSString或 a的类NSMutableString。如果该类是使用NSString基于构造函数的实例化的,我设置isMutableNO并且我想隐藏NSMutableString相关方法。有没有办法使用编译器指令或类似的东西来标记方法,#unavailable if (!isMutable)以便 Xcode 不显示?以防万一,我无法创建子类。这个怎么做?

- (instancetype)initWithString:(NSString *)string {
    // ...
}

- (instancetype)initWithMutableString:(NSMutableString *)string {
    // ..
    _isMutable = YES;
}

#unavailable (!isMutable)  // Check _isMutable ?
(void)appendString:(NSString *)string {
    //...
}

标签: objective-cxcodeautocomplete

解决方案


遵循此参考:

Cocoa:测试一个 NSString 是不可变的还是可变的?

所有答案都非常具有描述性,您会更清楚为什么应该这样做,或者您应该找到另一种解决方法。


推荐阅读