Wie zu beheben "Neudefinition der enumerator" - Fehler aus separaten objc-frameworks

Sowohl die AuthNet und PayPal mobile-payment-libraries die ENV_LIVE enumerator definiert. Diese reults in Xcode Fehler wie:

Redefinition of enumerator 'ENV_LIVE' ...

In Fällen wie diesem, wo man sich nicht leisten können, ändern Sie einfach den Quellcode des abhängigen frameworks, was sind einige Problemumgehungen verfügbar in objective-c-syntax-oder xcode-Konfiguration?

ZUNÄCHST:

#import "PayPal.h"
#import "AuthNet.h"
...
//AuthNet
[AuthNet authNetWithEnvironment:ENV_TEST];

//PayPal
if (STATUS_COMPLETED_SUCCESS == [PayPal initializationStatus]) {
    [PayPal initializeWithAppID:@"APP-XXX" forEnvironment:ENV_SANDBOX];
}

UPDATE (hier ist was ich landete mit als workaround basierend auf die richtige Antwort):

#import "PayPal.h"
@class AuthNet;
#import "AuthNetWorkaround.h"
...
[AuthNet authNetWithEnvironment:AUTHNET_ENV_TEST];

extern const int AUTHNET_ENV_LIVE;
extern const int AUTHNET_ENV_TEST;

@interface AuthNetWorkaround : NSObject

@end

#import "AuthNetWorkaround.h"
#import "AuthNet.h"

@implementation AuthNetWorkaround

const int AUTHNET_ENV_LIVE = ENV_LIVE;
const int AUTHNET_ENV_TEST = ENV_TEST;

@end
Sehen Sie den Fehler, wenn man die Header für beide Rahmen in der gleichen .m-Datei?
Ja, in der selben Datei appdelegate - ich wirklich brauchen, um zu initialisieren, Bibliotheken und verbinden Sie entweder live-oder prod-Server.

InformationsquelleAutor pulkitsinghal | 2012-03-22

Schreibe einen Kommentar