这是我的 Constants.h:
@import Foundation;
typedef NS_ENUM(NSUInteger, BarcodeType) {
kNormalBarcode,
kNoBarcode,
kGenericBarcode,
kInvalidBarcode,
kComicBarcode
};
@interface Constants : NSObject
@end
这是一个使用它的函数:
.h:
@interface Helper : NSObject
- (BarcodeType)barcodeType:(NSString *)barcode;
.m:
#import "Constants.h"
...
- (BarcodeType)barcodeType:(NSString *)barcode
{
return kInvalidBarcode;
}
为什么我的函数会收到此警告,我需要更改什么来修复它?
Conflicting return type in implementation of 'getBarcodeType:': 'id' vs 'BarcodeType' (aka 'enum BarcodeType')
此代码似乎适用于旧版本的 Xcode。
谢谢!
最佳答案
检查您的 .h 文件。我的猜测是您对该方法的声明使用 id
,这与您在返回类型 BarcodeType
的 .m 文件中的定义冲突。 NSEnum 值不是对象,因此 id
无效。您需要更正声明,以便返回类型与实现匹配。
关于ios - 为什么我在 Objective-C 中的枚举上收到类型冲突警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17224962/