我的代碼用於註冊使用UncaughtExceptionHandler
未捕獲的異常處理程序目標C是如下,你認爲會有什麼潛在的問題?註冊的UncaughtExceptionHandler使用NSSetUncaughtExceptionHandler
@interface AppDelegate()
void myHandler(NSException * exception);
@end
@implementation AppDelegate
void myHandler(NSException * exception)
{
// ...
}
- (BOOL) application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSSetUncaughtExceptionHandler(&myHandler);
..
有沒有可能有一個更簡潔的方式來寫它?
我需要使用類擴展聲明原型,以擺脫以前沒有原型功能的警告..
+1像往常一樣的優秀解釋。 –
感謝您的詳細解釋,而是指我的問題,'myHandler'被註冊在'AppDelegate',但未被捕獲的異常可以在任何類發生,所以如果我使用'static'是適合我的我不知道.. 。 – Ryan
@Yoga:您可以在這裏毫無問題地使用'static',因爲您將'myHandler'的地址傳遞給'NSSetUncaughtExceptionHandler'。可見性只對鏈接器很重要。如果任何模塊的地址爲'myHandler',則可以獨立於可見性調用此函數。 - 將本地靜態函數的地址傳遞給其他函數是常見模式,例如,回調函數等 –