2011-06-22 77 views
8

我在設置未捕獲的異常處理程序時遇到了一些問題。下面是我在做什麼:設置NSSetUncaughtExceptionHandler時出錯。

在應用delegate.h:

- (void) uncaughtExceptionHandler(NSException *exception); 

在應用delegate.m:

void uncaughtExceptionHandler(NSException *exception) { 
[FlurryAPI logError:@"Uncaught" message:@"Crash!" exception:exception]; 
} 


- (void)applicationDidFinishLaunching:(UIApplication *)application { 
NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler); // error line 
[FlurryAPI startSession:@"API_KEY"]; 
    .... 
} 

我收到以下錯誤:

Use of Undeclared Identifier "uncaughtExceptionHandler" 
+0

看起來像在applicationDidFinishLaunching只是無法找到象徵。嘗試清理項目? –

+0

@Patrick:沒有幫助:( – Ahsan

回答

10

嘗試從應用程序delegate.h中的方法聲明中刪除前導「 - 」。這似乎是一個較低級別的類C函數,而不是一個Object-C面向對象的實例方法(這就是方法聲明中的「 - 」意思)。

它應該是這樣的:

void uncaughtExceptionHandler(NSException *exception); 
+0

建立成功......謝謝:) – Ahsan

+0

當我刪除「 - 」時得到編譯錯誤 –

+0

@VanDuTran看到我的編輯? –