将Swift中的NSInteger值与NSError中的代码属性进行比较?

时间:2015-07-04 09:21:28

标签: ios objective-c swift

在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

什么是正确的语法?

0 个答案:

没有答案