Swift: как указать кандидата класса для использования при статическом вызове метода - PullRequest
0 голосов
/ 16 ноября 2018

Допустим, у нас есть два Obj-C класса, подобных этим:

Parent {
   + (void)doSomething {
      NSLog(@"%@", [self messageToDisplay]);
   }

   + (NSString *)messageToDisplay {
      return @"message_parent";
   }
}

Child: Parent {
   + (NSString *)messageToDisplay {
      return @"message_child";
   }
}

И этот Swift код:

Child.doSomething()

Он генерирует эту ошибку, потому что Swift не знает, какой кандидат использовать, Child или Parent.

Неоднозначное использование doSomething () 'Найдено этого кандидата (Child) Найдено этого кандидата (Parent)

Как мы можем указать кандидата для использования?

Большое спасибо.

1 Ответ

0 голосов
/ 16 ноября 2018

Хорошо, понял.Я нашел причину этой проблемы.У нас есть один метод ObjC с именем deleteObjectWithId в родительском классе, а другой (кстати, бесполезный) с именем deleteGroupWithId это дочерний класс, и при вызове метода удаления (withId :) из Swift фактически есть два кандидата.Большое спасибо.

...