我试图从Objective-C中的枚举生成一个字符串:

+ (NSString *)getStringFromKey:(ITGenericNotification)key {
    return [NSString stringWithFormat:@"notification%lu", (long)key];
}

这段代码运行了一年多
然而,当我试图从斯威夫特那里调用它时:
let notificationKey = NSNotification.getStringFromKey(ITNotificationWithObject.DidChangedQuestion.hashValue)

我得到一个损坏的字符串:
怎么回事?
ITGenericNotification的值似乎是正确的,
ITGenericNotification定义为typedef long ITGenericNotification;,并用作具有typedef NS_ENUM(ITGenericNotification, ITNotificationWithObject)的枚举的基类型
+ (NSString *)getStringFromKey:(ITGenericNotification)key被实现为NSNotification的一个类别

最佳答案

您可能希望.rawValue,而不是.hashValue,来获取
枚举的整数值。
(此外,调试器变量视图有时是错误的。如果有疑问,
在代码中添加println()NSLog()以验证
你的变量。)

08-19 19:19