2011-07-18 28 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 –

相关问题