2011-07-18 30 views
0

我試圖簡單地測試一些Objective-c API,但是我在由SUP創建的生成的代碼中遇到了一些未處理的異常問題。我已經建立了用下面的代碼進行簡單的測試:iOS生成的代碼中的未處理的異常

+(void)testPersonalizationKeys 
{ 
    TaskTracker_PersonalizationParameters *pp = nil; 
    pp = [TaskTracker_TaskTrackerDB 
    getPersonalizationParameters]; 
    pp.username = @"************"; 
    pp.password = @"************"; 
    [pp save]; 

    while([TaskTracker_TaskTrackerDB hasPendingOperations]) 
    { 
     [NSThread sleepForTimeInterval:1]; 
    } 

    [self printLogs]; 
} 

我把從主這個靜態方法和運行應用程序,但應用程序與此消息終止:

Terminating app due to uncaught exception 'SUPReadWriteLock error', reason: 'attempt to unlock when not locked' 

下面是完整的堆棧軌道:

*** Call stack at first throw: 
(
    0 CoreFoundation      0x00a685a9 __exceptionPreprocess + 185 
    1 libobjc.A.dylib      0x018fc313 objc_exception_throw + 44 
    2 TaskTracker       0x000c4b29 -[SUPReadWriteLock unlock] + 118 
    3 TaskTracker       0x00067356 +[TaskTracker_SubscriptionStatusfind:inTable:] + 1590 
    4 TaskTracker       0x00066d09 +[TaskTracker_SubscriptionStatusfind:] + 73 
    5 TaskTracker       0x00071256 -[TaskTracker_TaskTrackerDB packageIsSubscribed] + 70 
    6 TaskTracker       0x0006d561 +[TaskTracker_TaskTrackerDB packageHasSubscription] + 81 
    7 TaskTracker       0x00063981 -[TaskTracker_PersonalizationParameters save] + 1617 
    8 TaskTracker       0x00072f22 +[SampleApp testPersonalizationKeys] + 178 
    9 TaskTracker       0x00072a60 +[SampleApp runAPITests] + 272 
    10 TaskTracker       0x000023ea main + 138 
    11 TaskTracker       0x00002355 start + 53 
) 

有沒有人遇到類似這樣的事情與iOS到SUP連接?如果是這樣,你是怎麼過去的?

任何幫助表示讚賞!

+0

有沒有聽說過@try和@catch塊? – Macmade

+0

是的。問題是這段代碼應該是黑盒子。我不應該碰它。我希望我不必「打破保修」,但它可能是我唯一的選擇。 – janarde

回答

0

我得到了一個類似的異常,當我們在我的類中重寫了庫函數時。

+0

你能通過嗎?你記得它是什麼功能嗎? – janarde

+1

我們使用名爲「release」的MBO操作來覆蓋Objective C的版本。從那時起,我們決定在所有MBO操作前添加一個「op_」:D –

相關問題