2015-05-27 21 views
8

başka dosyada altında bir NS_ENUM tanımlanır:Referans belirsiz amaç-c

typedef NS_ENUM (NSUInteger, LinkPlatformType){ 
    LinkPlatformTypeEmail = 1, 
    LinkPlatformTypeFacebook, 
    LinkPlatformTypeGoogle 
}; 

Bir switch case yapmaya çalışacağım: Bir yapı hatası alıyorum

- (void)linkWithType:(LinkPlatformType)linkType { 
    switch (linkType) { 
     case LinkPlatformTypeGoogle: 
      break; 
     case LinkPlatformTypeFacebook: 
      break; 
     default: 
      break; 
    } 
} 

: Reference to LinkPlatformTypeGoogle is ambiguous. Reference to LinkPlatformTypeFacebook is ambiguous.

Güncellemeler:

i enum Hedef 1 örneğin içindedir tanımlanan, Ve bu defines.h dosyasını içe Sınıf StoreClass var dosya defines.h. Ve StoreClass.m Hedef Üyelik Birden çok hedef olarak belirledim: Hedef 1 ve Hedef 2. Bunu yaptıktan sonra Reference to LinkPlatformTypeFacebook is ambiguous ortaya çıktı. Sebebi bu mu olacak?

+1

çalıştı? En iyi tahminim, bunun sadece bir isimlendirme çakışması olması ve derleyicinin ne referans göstereceğini bilmemesi. – Vlad

+1

Yeni bir proje ile aynı kodu denedim..Bu dosyayı aldığınızı doğrulamak için herhangi bir hatayı almıyorum? ve evet NS_ENUM'u başlık dosyası olan defines.h dosyasına koydum. –

+0

@Vlad İki kez kontrol ettim. Adlandırma çakışması yok. Sadece projemde bir tanesini tanımladım. –

cevap

6

@import SwipeView; 

için

#import "SwipeView.h" 

gelen ithalat değiştirme benim Enum için farklı bir adlandırma ile denedin mi

+0

Sınıfım bir modülde (alt projede) bulundu, bu yüzden MainModule.Folder Görünümümün yerine .h uygulaması yerine çalıştım ve işe yaradı, teşekkürler! –

+0

FBSDKCoreKit 4.28.0'da FBSDKLoginManager ile çalışıyorum. –