Я смотрел на это снова и снова, и я не вижу проблемы. Наверное, это очевидно, и я, наверное, идиот, и заранее прошу прощения за это.
В моем интерфейсе у меня есть:
@interface PolygonShape : NSObject
{
int numberOfSides;
int minimumNumberOfSides;
int maximumNumberOfSides;
}
@property int numberOfSides, minimumNumberOfSides, maximumNumberOfSides;
// class methods
+ (float)getAngleInDegrees:(PolygonShape *) polyshape;
+ (float)getAngleInRadians:(PolygonShape *) polyshape;
+ (NSString)getName:(PolygonShape *) polyshape;
//instance methods
- (id)init;
- (id)initWithNumberOfSides:(int)sides minimumNumberOfSides:(int)min
maximumNumberOfSides:(int)max;
@end
Часть реализации, в которой я получаю ошибки, относится к методу getName:
@implentation...
+ (NSString)getName:(PolygonShape *) polyshape
{
// here is where I get the "error: can not use an object as parameter to a method"
int sides = [polyshape numberOfSides];
NSString * s = [NSString init];
switch (sides) {
case 3:
s = "@Triangle";
// there's also an "assignment from incompatible pointer type" warning...but its secondary
break;
case 4:
return "@Square";
break;
default:
break;
}
}
То, что сводит меня с ума, так это то, что методы класса работают просто отлично:
+ (float)getAngleInDegrees:(PolygonShape *) polyshape;
+ (float)getAngleInRadians:(PolygonShape *) polyshape;