2017-06-01 2 views
0

Dans AFNetworking code source AFURLSessionManager.m,Pourquoi utiliser NSStringFromSelector (@selector (countOfBytesReceived)) pour forKeyPath dans addObserver: forKeyPath: options: context dans AFNetworking?

(NSURLSessionTask *)task 
[task addObserver:self 
     forKeyPath:NSStringFromSelector(@selector(countOfBytesReceived)) 
      options:NSKeyValueObservingOptionNew 
      context:NULL]; 

Pourquoi utiliser "NSStringFromSelector (@selector (countOfBytesReceived))" au lieu de @ "countOfBytesReceived". Strictement

+0

[Quelle approche utiliser pour KVC?] (Https://stackoverflow.com/q/15023832/4244136) – Willeke

Répondre

1

NSStringFromSelector(@selector(countOfBytesReceived)) est strictement mieux parce que toute faute de frappe ou faute d'orthographe sera interceptée au moment de la compilation tant que l'avertissement "Undeclared Selector" est activé dans Xcode. Si vous utilisez à la place, par exemple, @"countOfByteReceived", tout compilera correctement, mais votre code ne fonctionnera pas comme souhaité lors de l'exécution. Le formulaire NSStringFromSelector permet également à l'éditeur de vous aider à compléter le code.