2010-10-03 46 views
0

我不确定这个setter函数声明有什么问题,因为同一个类中的其他setter函数具有相同的语法,并且它们不会导致错误。我认为这可能是在这个声明之前的语法错误,但我也检查过这些,似乎无法找到原因。下面是代码:';'之前的预期标识符令牌在objective-c

#import <Foundation/Foundation.h> 


@interface PolygonShape : NSObject { 

} 

@property int numberOfSides; 
@property int minimumNumberOfSides; 
@property int maximumNumberOfSides; 
@property (readonly) float angleInDegrees; 
@property (readonly) float angleInRadians; 
@property (readonly) NSString *name; 

-(void)setNumberOfSides:(int); // Error: expected idenitifier before ';' token 
-(void)setMinimumNumberOfSides:(int); 
-(void)setMaximumNumberOfSides:(int); 

-(id)initWithNumberOfSides:(int)sides minimumNumberOfSides:(int)min maximumNumberOfSides:(int)max; 
-(id)init; 

-(float)angleInDegrees; 
-(float)angleInRadians; 

-(NSString*)name; 

-(NSString*)description; 

@end 

我还以为这可能是因为我在合成实施的功能,但我这样做,既setMinimumNumberOfSides和setMaximumNumberOfSides为好。如果您需要执行代码以帮助解决此问题,请发表评论,我很乐意发布。

回答

9

您是否尝试添加参数名称?

-(void)setNumberOfSides:(int)sides; 
-(void)setMinimumNumberOfSides:(int)sides; 
-(void)setMaximumNumberOfSides:(int)sides; 
+0

确实。与ANSI C的函数声明相比,不能删除参数名称。 – Yuji 2010-10-03 22:23:10

+0

啊,谢谢,我实际上正在参加一个网络课程,我们专门用C语言编程,因此可能出现混淆。谢谢! – Andrew 2010-10-03 22:26:44

+0

@Boontz:你应该接受这个答案,因为它是正确的。 – JeremyP 2010-10-04 09:25:29

相关问题