Есть ли способ скрыть метод в автозаполнении XCode, если переменная не установлена? - PullRequest
0 голосов
/ 16 июня 2019

Я создаю класс, который может содержать 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 {
    //...
}

1 Ответ

0 голосов
/ 16 июня 2019

Следуйте этой ссылке:

Какао: тестирование, чтобы определить, является ли строка NSSt неизменной или изменчивой?

Все ответы очень наглядны, и вы получите большеИдея, почему это должно быть сделано, или вы должны найти другой обходной путь для этого.

...