0

我在我的 firebreath 项目中使用 Objective-C++。问题是我使用的是 Xcode 4,但找不到调试项目的方法。所以我考虑过我的方法是否是从网页中调用的。这是我的源代码: 在我的OpenOnDesktopPluginAPI.h课堂上:

class OpenOnDesktopPluginAPI : public FB::JSAPIAuto
{
    public:
    OpenOnDesktopPluginAPI(const OpenOnDesktopPluginPtr& plugin, const FB::BrowserHostPtr& host);
    virtual ~OpenOnDesktopPluginAPI();
    OpenOnDesktopPluginPtr getPlugin();
   ...
   //This is my method 
   void runNotification();
   ...
};

在我的OpenOnDesktopPluginAPI.mm课堂上:

OpenOnDesktopPluginAPI::OpenOnDesktopPluginAPI(const OpenOnDesktopPluginPtr& plugin,     const FB::BrowserHostPtr& host) : m_plugin(plugin), m_host(host)
{
    ...
    //Register my method
    registerMethod("runNotification",  make_method(this, &OpenOnDesktopPluginAPI::runNotification));
    ...
}

//DistributedNotification 类是我的objective-c 类,具有发布分布式通知的实现。

void OpenOnDesktopPluginAPI::runNotification()
{
     DistributedNotification * notificationClass = [[DistributedNotification alloc] init]; 
    [notificationClass postNotification];
    [notificationClass release];
}

在我的FBControl.html: ... function myFunction() { plugin().runNotification(); } ...我的新方法
...

我把我的DistributedNotification.mm课放在

 Build Phases -> "Compile Sources"

对于我的插件目标。但我不知道我的runNotification方法是否被调用,因为当(在我的网页中)我点击My new method链接时,什么也没有发生。

4

1 回答 1

0

当你问的时候,我会重复我在论坛上所说的话;也许你还没有看到那个答案:

首先,您可以使用 Xcode4 进行调试,至少在某些浏览器上是这样;诀窍是弄清楚要连接到哪个进程。

其次,您始终可以使用 NSLog 将内容记录到控制台。第三,您可以使用 log4cplus(参见http://www.firebreath.org/display/documentation/Logging)。

最后,您还没有指定您正在测试的浏览器,也没有说明会发生什么。看起来很合理,但显然不起作用?什么不起作用?它有什么作用?

如果没有有关您遇到的情况的详细信息,几乎不可能给您任何有用的建议。

于 2011-10-13T20:36:39.530 回答