当我编写任何新代码时,我通常会添加两个自定义宏:
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
NOT_IMPLEMENTED();
NOT_TESTED();
}
这些宏只是简单的东西:
#define NOT_IMPLEMENTED() do{ __asm int 3 } while(0)
我使用它有两个原因:1)我可以查看我在调试器中没有实现或逐步执行的函数的源代码2)如果我遇到其中一个条件,它只是暂停调试器而不是抛出像NSAssert这样的异常。通过这种方式,我可以查看callstack并从命中int 3的位置继续执行(P.S.'int 3'仅适用于intel处理器)。
现在,这就是问题。对于像'didFailWithError'这样的东西,几乎没有关于此消息的文档可以被发送。理想情况下,我想构建一个虚拟的web服务,知道如何触发这种情况,所以我知道我正在处理这种情况。这只是一个例子。如果您曾经使用过应用程序内购买API,那么同样模糊的错误代理也不会指示何时可以调用它们。
我想我要问的是其他开发人员如何测试许多iOS库中可用的错误代理?特别是那些没有说明它们如何触发的指示。