Il existe des solutions pré-2.0 sur Internet. L'un d'entre eux semble être le suivant:
void *libHandle;
void *airportHandle;
int (*open)(void *);
int (*bind)(void *, NSString *);
int (*close)(void *);
libHandle = dlopen("/System/Library/Frameworks/Preferences.framework/Preferences", RTLD_LAZY);
open = dlsym(libHandle, "Apple80211Open");
bind = dlsym(libHandle, "Apple80211BindToInterface");
close = dlsym(libHandle, "Apple80211Close");
open(&airportHandle);
bind(airportHandle, CFSTR("en0"));
close(&airportHandle);
dlclose(libHandle);
Je ne suis pas sûr si l'accès à ce cadre est interdit. Mais l'exécuter provoque un EXC_BAD_ACCESS. Donc, soit le code est faux, le cadre a changé ou il est en quelque sorte verrouillé. Pardonnez-moi pour tout faux-pas évident d'Objective-C. Je ne parle que l'Objective-C depuis jeudi, donc ma maîtrise d'Objective-C est probablement comme parachuter un locuteur latin dans une région hostile de Transylvanie.
Essayez le lien suivant https://code.google.com/p/iphone-wireless/source/browse/trunk/Stumbler/MSNetworksManager.m –