Objective c 观察员不工作
我试图让一个观察者在我的笔记本电脑自动改变其wifi连接时通知我 我有一个“NetworkProperties”类,用于存储连接属性:Objective c 观察员不工作,objective-c,macos,wifi,observers,Objective C,Macos,Wifi,Observers,我试图让一个观察者在我的笔记本电脑自动改变其wifi连接时通知我 我有一个“NetworkProperties”类,用于存储连接属性: @interface NetworkProperties : NSObject { @public CWInterface *wfi; @private CWWiFiClient *wfc; NSString *SSID; NSString *BSSID; NSString *phyMode; NSString
@interface NetworkProperties : NSObject
{
@public
CWInterface *wfi;
@private
CWWiFiClient *wfc;
NSString *SSID;
NSString *BSSID;
NSString *phyMode;
NSString *hwAddr;
NSString *securityType;
}
@end
还有一个“GUIHandle”类,我尝试在其中处理我的GUI。我还具有以下功能来启用/禁用扫描:
@interface GUIHandle : NSObject
{
NetworkProperties *NP;
}
-(IBAction)startScan:(id)sender;
-(IBAction)stopScan:(id)sender;
@end
-(IBAction)startScan:(id)sender
{
done = 0;
NP = [[NetworkProperties alloc] init];
[NP scanNetworkProperties];
[NP->wfi addObserver:self forKeyPath:@"bssid" options:NSKeyValueObservingOptionNew context:nil];
}
-(IBAction)stopScan:(id)sender
{
[NP->wfi removeObserver:self forKeyPath:@"bssid"];
}
- (void) observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
NSLog(@"We are here!\n");
if ([keyPath isEqual:@"bssid"]) {
NSLog(@"Value changed!\n");
}
}
但是,如果连接的“bssid”正在更改,则不会收到任何通知。我做错了什么?您能为networkproperties类提供.m文件吗?当然:
bssid
可观察到吗?我使用以下方法解决了问题:。非常感谢。