2017-10-13 3 views
0

Je reçois l'erreur suivante lors de l'exécution de mon application:NSData sélecteur Unrecognized envoyé à la classe

+ [NSData dataFromBase64String:]: sélecteur non reconnu envoyé à la classe 0x1aff66598 en raison de l'application Mettre fin exception uncaught « NSInvalidArgumentException », raison: '+ [NSData dataFromBase64String:]: sélecteur non reconnu envoyé à la classe 0x1aff66598'

L'appelant ressemble à ceci:

NSString* decodedData = [self base64Decode:encodedData]; 

Les définitions de méthode sont les suivants:

- (NSString *)base64Decode:(NSString *)base64String { 
    NSData *plainTextData = [NSData dataFromBase64String:base64String]; 
    NSString *plainText = [[NSString alloc] initWithData:plainTextData encoding:NSUTF8StringEncoding]; 
    return plainText; 
} 

// This is in another class 
+ (NSData *)dataFromBase64String:(NSString *)aString { 
    NSData *data = [aString dataUsingEncoding:NSASCIIStringEncoding]; 
    if(data == nil) 
     return nil; 
    size_t outputLength; 
    void *outputBuffer = NewBase64Decode([data bytes], [data length], &outputLength); 
    NSData *result = [NSData dataWithBytes:outputBuffer length:outputLength]; 
    free(outputBuffer); 
    return result; 
} 

Je ne sais pas ce que je fais mal ...

+0

Ajouter '#import "NSData + Base64.h"'? – DonMag

+0

Quel fichier contient l'implémentation de 'dataFromBase64String'? Est-ce défini comme une catégorie «NSData»? Ce fichier est-il lié à votre application? –

+0

Savez-vous que 'NSData' a déjà des fonctionnalités en base64? Il a été ajouté dans iOS 7. – rmaddy

Répondre

0

Est-ce votre implémentation de « dataFromBase64String: » en Objective C Catégorie dans un cadre statique ou une bibliothèque?

Si c'est le cas, les méthodes de la catégorie ne sont pas inclus dans la liaison et donc ne sont pas trouvés lors de l'exécution, sauf si vous ajoutez des drapeaux « -ObjC -all_load » sur OTHER_LINKER_FLAGS dans Xcode.

voir https://developer.apple.com/library/content/qa/qa1490/_index.html