我正在使用基于块的mailcore2 。通常他们定义一个这样的操作
SomeMailCoreOp *op = [session getOp];
[op start:^(NSError* error, id result) {
if (error) {
// handle error code
}
}];
所以我想做的基本上就是NSException
每次遇到错误时抛出一个..这样我就可以在我的代码库的其他地方捕获它..所以我创建了一个类别NSError
:
@implementation NSError (Addons)
-(NSString *)description {
return [NSString stringWithFormat:@"%@ - %@",
[self localizedDescription], [self localizedFailureReason]];
}
@end
这就是我通常希望处理错误的方式:
SomeMailCoreOp *op = [session getOp];
[op start:^(NSError* error, id result) {
if (error) {
[NSException raise:@"failure" format:[error description]];
}
}];
我认为这是有道理的,因为在NSException的文档format
中他们得到了这个:
格式,一个人类可读的消息字符串(即异常原因),其中包含后面的变量参数的转换规范。
但是,当我执行上述操作时,我总是会收到此编译器警告:
format string is not a string literal (potentially insecure)
我该如何解决这个问题?