如何监控objective-c方法的返回值更改

时间:2011-05-17 13:35:15

标签: objective-c macos sparkle

我在我的应用程序中使用Sparkle http://sparkle-project.org/框架进行自动更新。我有一个启用/禁用自动更新下载的UI项目,但我既不使用Sparkle文档中所述的Interface Builder绑定,也不使用KVO,因为没有自动更新下载的属性 - 只有getter和setter方法。我可以挂钩setter方法,并在此选项通过Sparkle的界面交互进行更改时调用回调。

在这种情况下我该怎么办?

谢谢。

2 个答案:

答案 0 :(得分:2)

如果有getter和setter方法,则隐含一个属性,即使未声明一个属性。你可以使用KVO就好了。事实上,多年来,这是做KVO的唯一方法; 没有明确的属性。 Cocoa使用适当命名的getter和setter作为属性来处理任何事情。

绑定使用相同的机制,因此您也应该能够使用绑定。不要让缺乏声明的财产吓跑你。

答案 1 :(得分:0)

为什么需要监控这些变化?我知道的大多数应用程序仅在启动时检查更新,而不是在运行时检查。所以你会检查并更新或继续申请。

如果没有其他方式,计时器(NSTimer)将始终定期检查事物。