【问题标题】:Comparison of Objective C type def enum in Swift not workingSwift中Objective C typedef枚举的比较不起作用
【发布时间】:2014-11-25 09:20:13
【问题描述】:

飞利浦 Hue SDK 的枚举比较有问题(在 Swift 中导入的带有桥头的 Obj-C 框架)。

这是 Obj-C 枚举:

/*******************************************************************************
 Copyright (c) 2013-2014 Koninklijke Philips N.V.
 All Rights Reserved.
 ********************************************************************************/

#define SDK_ERROR_DOMAIN @"com.philips.hue.sdk"

typedef enum {
    // Resource parsers
    INVALID_JSON = 1,
    INVALID_ARGUMENTS = 2,

    // PHHttpRequester
    NO_CONNECTION = 21,
    INVALID_PARAMETERS = 22,
    INVALID_PARAMETERS_MISSING_URL = 23,
    INVALID_PARAMETERS_MISSING_METHOD = 24,
    INVALID_PARAMETERS_INVALID_METHOD = 25,

    // Bridge Resource Cache Storage
    LIGHT_ID_NOT_FOUND = 41,
    SCHEDULE_ID_NOT_FOUND = 42,
    GROUP_ID_NOT_FOUND = 43,
    INVALID_DATA = 44,

    // Pushlinking
    PUSHLINK_NO_CONNECTION = 60,
    PUSHLINK_TIME_LIMIT_REACHED = 61,
    PUSHLINK_NO_LOCAL_BRIDGE = 62,

    // Unsupported
    UNSUPPORTED_IN_THIS_VERSION = 80,

    // Domain objects
    INVALID_DOMAIN_RESOURCE = 90,
    INVALID_DOMAIN_RESOURCE_ARGUMENT = 91,
    UNSUPPORTED_DOMAIN_RESOURCE_ARGUMENT = 92,

    CLIP_ERROR = 100
} CLErrorCode;

/**
    General purpose NSError derived object that is used for SDK errors
    Enum of error codes identifies error types
 */
@interface PHError : NSError

@end

在 Obj-C 示例项目中,他们像这样比较枚举错误代码:

我的 swift 代码如下所示,但出现以下错误:

我发现了这个问题:Equality on Objective-C typedef enum in Swift

但这对我不起作用。我已经试过了……

error.code.value = PUSHLINK_NO_CONNECTION.value
error.code = PUSHLINK_NO_CONNECTION.value
error.code = .PUSHLINK_NO_CONNECTION
...

没有任何效果:(

【问题讨论】:

    标签: objective-c swift enums


    【解决方案1】:

    您是否尝试过使用 rawValue? 像这样的:

    error.code.value == CLErrorCode.PUSHLINK_NO_CONNECTION. rawValue
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-16
      • 2015-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多