【发布时间】:2013-06-20 22:33:00
【问题描述】:
这是我的常量.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 中正常工作。
谢谢!
【问题讨论】:
-
顺便说一句,您的方法名称不应以“get”开头。在 Objective-C/Cocoa 中以“get”为前缀的方法有一个特定的约定,即它们通过引用在它们的一个参数中返回一个值(例如
-[NSArray getObjects:range:])。相反,您通常会调用类似-barCodeTypeForString:的方法。 -
@AndrewMadsen 感谢您的提示,您说得对,我需要更改函数名称。
-
错误是抱怨 -getBarcodeType:,但您显示了 -barcodeType: 的代码,这是一种不同的方法,前面没有“get”。问题可能出在 getBarcodeType 方法中。
标签: ios objective-c cocoa-touch enums