2017-10-04 1 views
0

Ich bin neu in Obj-c und ich versuche, ein Cordova-Plugin für die Square Connect-Bibliothek zu erstellen.Fehler beim Aufrufen der Klassenmethode in obj-c

Ich versuche, eine Instanz der Klasse SCCAPIRequest zu erstellen. aber ich erhalte eine Fehlermeldung:

error: no known class method for selector 
    'requestWithCallbackURL:amount:locationID:notes:metadata:supportedTenderTypes:error:' 

Hier ist meine Funktion

- (void)requestCharge: (CDVInvokedUrlCommand *)command { 
int amount = [[command.arguments objectAtIndex: 0] intValue]; 
NSDictionary* options = [command.arguments objectAtIndex: 1]; 

CDVPluginResult *pluginResult; 

if(amount < 0 || amount == 0) { 
NSLog(@"Error: Ammount to charge is 0"); 
NSString *errorResponse = @"Error: Ammount to charge is 0"; 
pluginResult = [CDVPluginResult 
resultWithStatus:CDVCommandStatus_ERROR messageAsString:errorResponse]; 
} 

[self setOptions:options]; 

NSError *error = nil; 
SCCAPIRequest *request = [SCCAPIRequest requestWithCallbackURL:[NSURL 
URLWithString:yourCallbackURLString] 
             amount:amount 
           locationID:self.locationID 
             notes:self.note 
            metadata:self.metadata 
           supportedTenderTypes:self.tenders 
             error:&error]; 


NSData *response = [NSKeyedArchiver archivedDataWithRootObject:request]; 

if(error) { 
    pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR 
    messageAsArrayBuffer:response]; 
} else { 
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK 
    messageAsArrayBuffer:response]; 
} 

[self.commandDelegate sendPluginResult:pluginResult 
callbackId:command.callbackId]; 
} 

Vielen Dank im Voraus ist!

Antwort

0

Das Fehlerprotokoll sagt alles, was Sie wissen müssen. Es gibt keine Methode 'requestWithCallbackURL:amount:locationID:notes:metadata:supportedTenderTypes:error:'. Sie rufen eine nicht vorhandene Init-Methode SCCAPIRequest auf.

Wenn Sie die Init-Methoden dieser Klasse in seiner Header-Datei auschecken möchten, speziell unter diesem Link: https://github.com/square/SquarePointOfSaleSDK-iOS/blob/master/Sources/SCCAPIRequest.h, sehen Sie zwei verschiedene init-Methoden, die Sie verwenden können.

+ (nullable instancetype)requestWithCallbackURL:(nonnull NSURL *)callbackURL 
             amount:(nonnull SCCMoney *)amount 
           userInfoString:(nullable NSString *)userInfoString 
            locationID:(nullable NSString *)locationID 
              notes:(nullable NSString *)notes 
            customerID:(nullable NSString*)customerID 
          supportedTenderTypes:(SCCAPIRequestTenderTypes)supportedTenderTypes 
           clearsDefaultFees:(BOOL)clearsDefaultFees 
       returnAutomaticallyAfterPayment:(BOOL)autoreturn 
              error:(out NSError *__nullable *__nullable)error; 

+ (nullable instancetype)requestWithCallbackURL:(nonnull NSURL *)callbackURL 
             amount:(nonnull SCCMoney *)amount 
           userInfoString:(nullable NSString *)userInfoString 
            merchantID:(nullable NSString *)merchantID 
              notes:(nullable NSString *)notes 
            customerID:(nullable NSString*)customerID 
          supportedTenderTypes:(SCCAPIRequestTenderTypes)supportedTenderTypes 
           clearsDefaultFees:(BOOL)clearsDefaultFees 
       returnAutomaticallyAfterPayment:(BOOL)autoreturn 
              error:(out NSError *__nullable *__nullable)error __deprecated_msg("Use requestWithCallbackURL:amount:userInfoString:locationID:notes:customerID:supportedTenderTypes:clearsDefaultFees:returnAutomaticallyAfterPayment:error: instead."); 

Verwenden Sie also eine dieser, um eine Instanz von SCCAPIRequest richtig zu machen.

+0

Können Sie mich auf ein Tutorial zur Verwendung von 'init' Methoden verweisen? Wie ich schon sagte, ich bin neu in Obj-c. –

+0

Hi @DanielCuesta, die oben angegebenen Codes sind die Funktionen, die Sie aufrufen würden, wenn Sie eine neue Instanz von 'SCCAPIRequest' erstellen. Sie nennen es einfach wie das, was Sie oben getan haben: 'SCCAPIRequest * request = [SCCAPIRequest ...... lalala]' – Glenn

+0

Ich konnte kompilieren, aber ich bekomme einen Fehler 'SCCAPIRequest encodeWithCoder:]: unerkannter Selektor an Instanz gesendet ' –

Verwandte Themen