我正在使用SDK用于USB摄像头。 SDK指定对于每个抓取的帧,将调用回调函数。回调函数在SDK中定义,它获取一个指向图像的数据指针和一个用于解释数据的结构。
所有这些都能正常运作。
要从中创建一个有用的应用程序,我需要从我的应用程序中访问一些变量。现在因为委托函数是静态的,我只能访问静态成员。我想过用它们制作一个单例,因为它会是静态的,但在委托函数中是否有任何“常规方式”访问其他数据?
答案 0 :(得分:1)
为什么不使用非静态委托?在这种情况下,您可以访问类实例成员。有没有什么东西迫使你进入静态委托而不是你的数据和逻辑所在的类之一的实例上的委托?
如果是这样,那么有没有办法将数据传递给回调?如果可以,您可以传递对类的引用,并在您的委托中使用它来获取您的应用程序数据。
如果没有,那么您可能被迫拥有一些静态数据,或者对包含数据的类的静态引用。在这种情况下,单身或类似构造可能是最佳选择......
答案 1 :(得分:0)
为什么让委托变为静态?如果你这样做会疼,那就停止这样做吧。 :)
答案 2 :(得分:0)
委托可以是静态的(虽然它为什么需要,我不清楚)。该功能不需要。
将委托解除引用到方法调用中并不关心被调用的函数是实例方法还是静态方法。