[英]iOS property Observer in Objective C (String or dictionary)
我正在為我的應用程序構建一個屬性觀察器(鍵值觀察)。 理想的情況是監視值(字符串或字典)的奇怪值。 我在 viewDidLoad 中寫了這個
@interface BarScannerViewController () <AVCaptureMetadataOutputObjectsDelegate>
{
NSMutableDictionary *scanTrackingNumbers;
}
並在 viewdidload
[scanTrackingNumbers addObserver:self forKeyPath:@"scanTrackingNumber" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil];
[scanTrackingNumbers setValue:@"test123455" forKey:@"scanTrackingNumber"];
並實現方法
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context{
if ([keyPath isEqualToString:@"scanTrackingNumber"]){
NSLog(@"scanTrackingNumber Changed %@",change);
NSLog(@"scan12335 %@",scanTrackingNumbers);
}
}
我不知道為什么它不起作用(注意打印到控制台日志)。 代碼可能有什么問題?
嘗試setObject
而不是setValue
“我不知道這是否重要” 另外,請確保字典已初始化
在添加觀察者之前寫這個
self.scanTrackingNumbers = [[NSMutableDictionary alloc]init];
更簡單的方法
self.scanTrackingNumbers = [NSMutableDictionary dictionary];
最簡單的方法
self.scanTrackingNumbers = @{}
你必須創建字典:-D
scanTrackingNumbers = [NSMutableDictionary new];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.