addObserver:forKeyPath: 如何在静态类上工作?

发布于 2025-01-01 04:31:59 字数 479 浏览 0 评论 0原文

我正在尝试构建一个名为 Logger 的静态类,当像 [Logger uploadLogFiles] 那样调用时,它将在某个时刻上传日志文件。

我试图向这个静态类添加一个观察者,如下所示:

[Logger addObserver:self forKeyPath:@"uploadComplete" options:NSKeyValueObservingOptionNew context:nil];

我在开始异步调用之前执行此操作NSURLConnection 的方法。我确实收到一条警告,指出不兼容的指针类型将 Class 发送到 NSObject * 类型的参数

但是,这似乎不起作用,因为 observerValueForKeyPath: 方法永远不会被调用。

有人有在静态类中向静态变量添加观察者的经验吗?

谢谢!

I'm trying to build a static class called Logger that will upload the log files at some point, when called like [Logger uploadLogFiles].

I'm trying to add an observer to this static class like so:

[Logger addObserver:self forKeyPath:@"uploadComplete" options:NSKeyValueObservingOptionNew context:nil];

I do this just before starting an asynchronous call method for NSURLConnection. I do get a warning, saying Incompatible pointer types sending Class to parameter of type NSObject *.

However, this does not seem to work, as the observerValueForKeyPath: method never gets called.

Has anybody had any experience with adding observers to static variables in static classes?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

山田美奈子 2025-01-08 04:31:59

类没有实例变量,因此没有什么可观察的。

您需要有一个用于 KVO 的实际对象(类的实例)。

A Class has no instance variables, so there is nothing to observe.

You need to have an actual object (an instance of a class) for KVO.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文