ja zdefiniował NS_ENUM poniżej w innym pliku:odniesienia do wyliczenia jest niejednoznaczna objective-c
typedef NS_ENUM (NSUInteger, LinkPlatformType){
LinkPlatformTypeEmail = 1,
LinkPlatformTypeFacebook,
LinkPlatformTypeGoogle
};
Kiedy próbuję zrobić obudowę przełącznika:
- (void)linkWithType:(LinkPlatformType)linkType {
switch (linkType) {
case LinkPlatformTypeGoogle:
break;
case LinkPlatformTypeFacebook:
break;
default:
break;
}
}
Otrzymuję błąd kompilacji: Reference to LinkPlatformTypeGoogle is ambiguous
. Reference to LinkPlatformTypeFacebook is ambiguous
.
Aktualizacje:
Plik defines.h które zdefiniowane enum jest na przykład w Celu 1, a istnieje klasa StoreClass który importować ten plik defines.h. I docelowe członostwo StoreClass.m ustawiłem jako wiele celów: cel 1 i cel 2. Po tym, pojawił się Reference to LinkPlatformTypeFacebook is ambiguous
. Czy to będzie powód?
Próbowałeś z innym nazewnictwa dla wyliczenia? Domyślam się, że może to być tylko konflikt nazw, a kompilator nie wie, do czego się odwołać. – Vlad
Próbowałem tego samego kodu, co twój, z nowym projektem. Nie dostaję żadnego błędu jako takiego, tylko po to, aby zweryfikować czy importujesz plik? i tak umieszczam plik NS_ENUM w pliku define.h, który jest plikiem nagłówkowym. –
@Vlad Sprawdziłem dwa razy. Nie ma konfliktu nazw. Zdefiniowałem tylko jeden w moim projekcie. –