我正在为我的textView使用NSNotification,但我的textField点击也调用了这个委托方法。那么,我怎样才能找到NSNotification的对象类型???
目前我正在使用:
MyTextView *text = (MyTextView *)[aNotification object];
这里MyTextView是一个引用textView的类。那么,我如何区分NSNotification的对象类型。
请指导我。 感谢
答案 0 :(得分:3)
我不建议这样做。为每个操作/通知创建两个单独的方法,使用不同的名称清楚地说明他们正在处理什么。
无论如何,你要求的是这样做的
if ([[aNotification object] isKindOfClass:[MyTextView class]])
{ treat it like MyTextView }
我不确定你对textField点击的意思,但似乎你可能还需要这个
if ([aNotification isKindOfClass:[NSNotification class]])
{...}
答案 1 :(得分:0)
在Swift 5中,如下面的图片所示,
noti.object
是Any?
查找类型是将noti.object
强制转换为所需的类型。
这是RxSwift的示例,
let observable = NotificationCenter.default.rx.notification( .login )
.takeUntil(self.rx.deallocated)
.flatMap { (noti: Notification) -> Observable<Bool> in
if let result = noti.object as? A{
// ...
return self.login(result.id)
}
else{
return Observable.of(false)
}
}