我目前正在学Objective C,并且在这个过程中我做了下面这个愚蠢的小程序。该程序编译良好 - 但我收到警告“多个方法命名'-setName:'找到”。多种方法警告
我只接口并实现了一次该方法。
这个警告是什么意思,我该如何纠正?
#import <Foundation/Foundation.h>
// these are the three yoga-exercises we can perform
typedef enum {
kCobra,
kUniversal,
kDog
} ExerciseName;
// translating our variables into human
NSString *nameExercise (ExerciseName nameExercise)
{
switch (nameExercise) {
case kCobra:
return @"Cobra Pose";
break;
case kUniversal:
return @"Universal Stretch";
break;
case kDog:
return @"Dog Pose";
break;
}
return @"no clue!";
} // nameExercise
@interface Exercise : NSObject
{
ExerciseName name;
}
-(void) setName: (ExerciseName) name;
-(void) exerciseDo;
@end
@implementation Exercise
-(void) setName: (ExerciseName) n {
name = n;
} // setName
-(void) exerciseDo {
NSLog(@"Exercise: %@",
nameExercise(name));
}
@end
void executeExercises(id exercises[], int count) {
int i;
for(i=0; i<count; i++) {
id exercise = exercises[i];
[exercise exerciseDo];
}
}
int main (int argc, const char * argv[]) {
id exercises[1];
exercises[0] = [Exercise new]; // initiating an object of class Exercise
[exercises[0] setName:kDog];
executeExercises(exercises, 1);
return 0;
} //main
1。以这种方式思考......如果从现在开始的六个月内,你从未见过的人必须阅读你的代码,那么代码的哪一行才会最有意义,并让读者最理解你的意图? – bbum 2011-04-27 06:45:29