Objective c 如何将枚举作为参数传递给Objective中的函数
头文件如下所示:Objective c 如何将枚举作为参数传递给Objective中的函数,objective-c,enums,Objective C,Enums,头文件如下所示: enum RatingsEnum { userRating, criticRating, }; @interface SFMovie : NSObject - (NSNumber *)getRating:(NSDictionary *)movieDic :(enum RatingsEnum) rating; @end 如何使用此方法获取评级?我不知道如何通过枚举。我的电话号码: - (void) testGetCriticRatingMethod{
enum RatingsEnum
{
userRating,
criticRating,
};
@interface SFMovie : NSObject
- (NSNumber *)getRating:(NSDictionary *)movieDic :(enum RatingsEnum) rating;
@end
如何使用此方法获取评级?我不知道如何通过枚举。我的电话号码:
- (void) testGetCriticRatingMethod{
NSMutableDictionary *ratingDictionary = [[NSMutableDictionary alloc]init];
[ratingDictionary setObject:@"Certified Fresh" forKey:@"critics_rating"];
[ratingDictionary setObject:@"70" forKey:@"critics_score"];
[ratingDictionary setObject:@"Certified Fresh" forKey:@"audience_rating"];
[ratingDictionary setObject:@"87" forKey:@"audience_score"];
SFMovie *movie = [[SFMovie alloc]init];
enum RatingsEnum ratings;
NSInteger userRating = [movie getRating:ratingDictionary rating:userRating];
}
这将产生以下警告:
“SFMovie”没有可见的@interface声明选择器“getRating:rating:”
有人能给我介绍一个好的枚举教程吗?谢谢大家。这与
枚举或参数类型无关。你的语法完全错误。声明的方法的名称是getRating::
。正确的呼叫看起来像
[movie getRating:ratingDictionary :userRating];
将标签添加到第二个参数
- (NSNumber *)getRating:(NSDictionary *)movieDic ofType:(enum RatingsEnum)rating;
改变
enum RatingsEnum ratings;
NSInteger userRating = [movie getRating:ratingDictionary rating:userRating];
到
改变
enum RatingsEnum ratings;
NSInteger userRating = [movie getRating:ratingDictionary rating:userRating];
到
知道了。谢谢你,乔希。这真的与枚举无关。这只是一般的命名方法。是的,谢谢。在这里提问之前,我没有花足够的时间进行调试:(.在将问题放到stackoverflow上之后,我看到了错误:(
enum RatingsEnum ratings;
NSInteger userRating = [movie getRating:ratingDictionary rating:userRating];
enum RatingsEnum ratings = userRating;
NSNumber *ratingFromUser = [movie getRatingWithDictionary:ratingDictionary ratingEnum:ratings];