2017-06-27 3 views
1

J'utilise ce code pour créer un NSURLSession mais je reçois un avertissement de Xcodemessage d'avertissement lors de la création NSURLSession

NSURLSessionConfiguration *sessionConf = [NSURLSessionConfiguration defaultSessionConfiguration]; 

NSURLSession *fetchTillDataAllv2 = [NSURLSession sessionWithConfiguration:sessionConf delegate:self delegateQueue:nil]; 

L'avertissement est le suivant

/Users/mdouhan/devnew/NWMobileTill/NWMobileTill/WebServices.m:902:100: Incompatible pointer types sending 'Class' to parameter of type 'id<NSURLSessionDelegate> _Nullable' 

Et il pointe que Je ne peux pas déléguer; moi-même mais comment puis-je corriger cela?

Répondre

-1

Avez-vous ajouté le délégué dans le fichier .h comme suit?

@interface ViewController : UIViewController <NSURLSessionDelegate> { 
... 
} 
+0

@interface WebServices: NSObject est ce que je –

+0

un coup d'oeil à l'adresse https: // stackoverflow.com/questions/41319616/how-to-call-nsurlsession-delegate-in-nsobject-class-not-in-viewcontroller – Burnie777

+0

et https://stackoverflow.com/questions/37248688/how-to-config-nsurlsessionconfiguration -into-the-nsobject-class – Burnie777

2

probablement extrait de code est d'une méthode de classe (en commençant par un +). Par conséquent self pointe vers un objet de classe.

En général, vous résoudre ce problème en créant une instance commune qui agit en tant que délégué:

+ (id)sharedSessionDelegate // or whatever name, typically the class name 
{ 
    static MyManager *sharedSessionDelegate; 
    static dispatch_once_t onceToken; 
    dispatch_once(&onceToken, 
    ^{ 
    sharedSessionDelegate = [self new]; 
    }); 

    return sharedSessionDelegate; 
} 
+0

Oui c'est comment puis-je faire ce travail? –

+0

@MattDouhan - Vous ne pouvez pas. Vous devez créer une instance de cette classe (par exemple, un singleton ou une ancienne instance). – Rob

+0

Comment puis-je faire cela, c'est la première fois que je cours dans ce –