2011-10-13 1 views
0

firebreath 프로젝트에서 Objective-C++을 사용하고 있습니다. 문제는 Xcode 4를 사용하고 있으며 프로젝트를 디버그하는 방법을 찾을 수 없다는 것입니다. 따라서 웹 페이지에서 내 메서드가 호출되었는지 생각해 보았습니다. 내 OpenOnDesktopPluginAPI.mm 클래스에서Firebreath 내 메소드가 디버깅없이 호출되는지 확인하는 방법

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::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 클래스는 포스트 분산 알림 구현 내 목표 - C 클래스 내 OpenOnDesktopPluginAPI.h 클래스에서 : 여기 내 소스 코드 . . 내 FBControl.html에서

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

: ... myFunction 함수() { 플러그인() runNotification(); } ... 내 새로운 방법
은 ...

내 플러그인 대상의

Build Phases -> "Compile Sources" 

DistributedNotification.mm 클래스를 넣어. 그러나 (내 웹 페이지에서) My new method 링크를 클릭하면 아무 일도 일어나지 않기 때문에 내 runNotification 메서드가 호출되는지 알 수 없습니다.

+2

코드에 오래된 흔적을 넣으시겠습니까? –

답변

0

내가 물었을 때 내가 포럼에서 말한 것을 반복 할 것이다. 아마도 아직 그 대답을 보지 못했을 것입니다 :

우선, 적어도 일부 브라우저에서는 Xcode4로 디버깅 할 수 있습니다. 그 속임수는 연결할 프로세스를 알아내는 것입니다.

둘째, 항상 NSLog를 사용하여 모든 것을 콘솔에 기록 할 수 있습니다. 셋째, log4cplus를 사용할 수 있습니다 (http://www.firebreath.org/display/documentation/Logging 참조).

마지막으로 테스트중인 브라우저를 지정하지 않았으며 어떤 일이 발생했는지 표시하지 않았습니다. 그것은 합리적인 것처럼 보이지만 어쩔 수없이 작동하지 않습니까? 작동하지 않는 것은 무엇입니까? 그것은 무엇을합니까?

당신이 겪고있는 것에 대한 자세한 정보없이 당신에게 유용한 조언을하는 것은 거의 불가능합니다.

+0

Firefox 3.6.23 및 Chrome 14.0.835.202를 사용하고 있습니다. "My new method"링크에서 웹 페이지를 클릭하면 javascript 함수 "myFunction"이 호출됩니다. 그리고이 함수는 플러그인 메소드 "runNotification"을 호출합니다. 이 방법에서는 objective-c 코드가 있습니다. 특히 NSDistributedNotification을 게시합니다. 내 문제는 알림이 게시되지 않는다는 것입니다. – Ana

+0

이제 javascript 콘솔에서 "plugin(). notification이 함수가 아닙니다."라는 오류 메시지가 표시됩니다. – Ana

+0

플러그인과 같은 소리가로드되지 않습니다. 올바르게 설치 했습니까? 플러그인에 대한 정보가 표시됩니까? FBTestPlugin을 먼저 실행하여 플러그인을로드하고 실행하는 방법을 이해하도록하십시오. – taxilian