我试图从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()
以验证
你的变量。)