我正在创建一个可以包含NSString
或NSMutableString
的类。如果使用基于NSString
的构造函数实例化该类,则将isMutable
设置为NO
,并且我想隐藏与NSMutableString
相关的方法。是否可以使用编译器指令或类似#unavailable if (!isMutable)
之类的方法来标记方法,以使Xcode不会显示该方法?万一我不能创建子类。该怎么做?
- (instancetype)initWithString:(NSString *)string {
// ...
}
- (instancetype)initWithMutableString:(NSMutableString *)string {
// ..
_isMutable = YES;
}
#unavailable (!isMutable) // Check _isMutable ?
(void)appendString:(NSString *)string {
//...
}
答案 0 :(得分:0)
遵循此参考文献:
Cocoa: Testing to find if an NSString is immutable or mutable?
所有答案都非常具有描述性,您将更加了解为什么要这样做,或者您应该找到其他解决方法。