2015-05-27 10 views
8

मैं एक फ़ाइल में नीचे एक NS_ENUM परिभाषित किया गया है:संदर्भ अस्पष्ट उद्देश्य-सी

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

जब मैं एक स्विच मामले करने की कोशिश:

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

मैं एक निर्माण त्रुटि हो रही है: Reference to LinkPlatformTypeGoogle is ambiguousReference to LinkPlatformTypeFacebook is ambiguous

अपडेट:

फ़ाइल defines.h जो मैं परिभाषित enum उदाहरण के लिए में लक्ष्य 1 है, और एक कक्षा StoreClass जो इस defines.h फ़ाइल आयात नहीं है। और StoreClass.m लक्ष्य सदस्यता मैंने एकाधिक लक्ष्यों के रूप में सेट किया है: लक्ष्य 1 और लक्ष्य 2. इसलिए ऐसा करने के बाद, Reference to LinkPlatformTypeFacebook is ambiguous दिखाई दिया। क्या यह कारण होगा?

+1

आप enum के लिए एक अलग नामकरण के साथ की कोशिश की के लिए काम किया? मेरा सबसे अच्छा अनुमान यह है कि यह सिर्फ एक नामकरण संघर्ष हो सकता है और संकलक को पता नहीं है कि संदर्भ क्या है। – Vlad

+1

मैंने नई परियोजना के साथ आपके जैसा कोड भी कोशिश की है .. मुझे इस तरह की कोई त्रुटि नहीं मिल रही है, बस यह सत्यापित करने के लिए कि आप फ़ाइल आयात करते हैं? और हाँ मैंने NS_ENUM को defines.h फ़ाइल में रखा है जो हेडर फ़ाइल है। –

+0

@Vlad मैंने दो बार चेक किया। कोई नामकरण संघर्ष नहीं है। मैंने केवल अपनी परियोजना में एक परिभाषित किया है। –

उत्तर

6

#import "SwipeView.h" 

से आयात बदलने

@import SwipeView; 

करने के लिए मुझे

+0

मेरी कक्षा एक मॉड्यूल (सबप्रोजेक्ट) में थी इसलिए मैंने @import MainModule.Folder आयात करने का प्रयास किया जहां मेरा विचार .h कार्यान्वयन के बजाय रहता है और यह काम करता है, धन्यवाद! –

+0

यह मेरे लिए FBSDKLoginManager के साथ FBSDKCoreKit 4.28.0 में काम करता है –

संबंधित मुद्दे