Apple semble introduire tout un changement de Yosemite et cadre CoreWLAN. Je voudrais utiliser sa nouvelle API, citant le fichier d'en-tête:
Error Domain=com.apple.wifi.request.error Code=4 "The operation couldnât be completed. (com.apple.wifi.request.error error 4.)"
3 Réponses :
Cela fait le même travail ce que vous voulez réaliser dans ci-dessus. Il vous avère chaque fois que SSID change
Pour que vous puissiez obtenir ces notifications que vous devez tenir à une instance de CWINTERFACE. Votre .h ressemblerait à ceci p> puis dans votre fichier .m ressemblerait à ce p> Prenez soin de toi Utilisation du nom de l'interface EN1 ou EN0. Vérifiez votre système SysyTem en vous voyant à quelle interface IP est présent en donnant IFCONFIG P> P>
Merci @Syammala pour la réponse. Ces notifications sont obsolètes dans le système d'exploitation X 10.10. Je cherche à utiliser la nouvelle API qui est suggérée dans la note de dépréciation en Xcode. Je me souviens de faire face à cette question sur 10.10.1, je n'ai pas vérifié si 10.10.3 incluait une solution pour cela, mais je pense que cela fait.
Non @Synamala Votre réponse n'a pas aidé. Ma question était concernant une API spécifique. S'il vous plaît prenez un autre regard sur le titre. En outre, dans la première phrase de l'organe de la question, j'étais clair et dit: "Je veux utiliser la nouvelle API".
Je reçois le même problème sur 10.10.3. Erreur de signature de code lorsque j'ajouterais com.apple.wifi.events aux droits et aux droits CWSSidDidChangénotification maintenant amortissés ...
Il semble qu'il y ait actuellement le (31 juillet 2015) un bogue dans En conséquence, nous devrons peut-être recourir à l'API obsolète pour le moment. Syammala fournit un Bon exemple de Comment utiliser l'API obsolète. P> cwwificlient code>: les droits ne sont pas correctement accordés. Cela s'étend même aux applications non sandulaires. Voir Cette question sur les forums de développeurs Apple pour plus d'informations. P>
Vous devez utiliser CweventDelegate avec StartmonitoringEventwithType, selon le document de CweventDelegate: https://developer.apple.com/documentation/corewlan/cweventdelegate
L'ensemble du code est: p>
p>
- (void)testDelegateMethod{ [CWWiFiClient sharedWiFiClient].delegate = self; NSError *error; [[CWWiFiClient sharedWiFiClient] startMonitoringEventWithType:CWEventTypePowerDidChange error:&error]; [[CWWiFiClient sharedWiFiClient] startMonitoringEventWithType:CWEventTypeSSIDDidChange error:&error]; [[CWWiFiClient sharedWiFiClient] startMonitoringEventWithType:CWEventTypePowerDidChange error:&error]; [[CWWiFiClient sharedWiFiClient] startMonitoringEventWithType:CWEventTypeLinkDidChange error:&error]; [[CWWiFiClient sharedWiFiClient] startMonitoringEventWithType:CWEventTypeNone error:&error]; if (error) { NSLog(@"error : %@",error); } } #pragma mark - CWEventDelegate - (void)clientConnectionInterrupted{ NSLog(@"-- clientConnectionInterrupted"); } - (void)clientConnectionInvalidated{ NSLog(@"-- clientConnectionInvalidated"); } - (void)powerStateDidChangeForWiFiInterfaceWithName:(NSString *)interfaceName{ NSLog(@"-- %@ powerStateDidChange ",interfaceName); } - (void)ssidDidChangeForWiFiInterfaceWithName:(NSString *)interfaceName{ NSLog(@"-- %@ ssidDidChange",interfaceName); }
Merci @melissa. Je ne travaille plus sur ce projet, mais je pense que c'est génial que vous ayez ajouté cette réponse mise à jour. J'espère que cette information sera utile pour quelqu'un d'autre.
Cwwificlient semble avoir des problèmes: forums.developer.apple.com/thread/11307 mai avoir recours à l'API obsolète pour le moment :(
Merci @jvmk pour ce lien. Peut-être devriez-vous envisager de l'afficher comme une réponse.
suivi vos conseils et avez posté une réponse. Je m'abstiens de la publier comme une réponse au début car il n'aura pas de valeur à long terme, c'est-à-dire que le bogue sera corrigé bientôt :).