在Swift中,我们需要将code
对象的NSError
属性与NSInteger
中存储的NS_ENUM
值进行比较。
NS_ENUM结构(来自https://github.com/piemonte/PBJVision/blob/master/Source/PBJVision.h):
typedef NS_ENUM(NSInteger, PBJVisionErrorType)
{
PBJVisionErrorUnknown = -1,
PBJVisionErrorCancelled = 100,
PBJVisionErrorSessionFailed = 101,
PBJVisionErrorBadOutputFile = 102,
PBJVisionErrorOutputFileExists = 103,
PBJVisionErrorCaptureFailed = 104,
};
我们希望查看错误代码是否与PBJVisionErrorCancelled
匹配,但我们无法弄清楚Swift中的语法。
在阅读其他SO帖子并浏览多篇博客文章后,尝试了几种选项,但都没有效果:
Int(error!.code) == Int(PBJVisionErrorType.Cancelled)
Int(error!.code) == Int(PBJVisionErrorType.Cancelled.value)
error!.code == Int(PBJVisionErrorType.Cancelled)
error!.code == Int(PBJVisionErrorType.Cancelled.value)
error!.code == PBJVisionErrorType.Cancelled.value
什么是正确的语法?