我正在尝试制作一个自定义类来保存我的iPhone应用中的数据。我想要一个盒子对象,它将容纳2个变量,它的状态(作为一个int)以及它是否被填充。 (作为一个博尔)在我的.h我有这个:
#import <Foundation/Foundation.h>
@interface box : NSObject
{
BOOL filled;
int state;
}
- (id)init;
-(void)setState:(int)thestate;
-(BOOL)isFilled;
-(BOOL)filled;
-(int)state;
-(void)setFilled:(BOOL)input;
-(void)setState:(int)input;
@end
在我的.m中我有这个:
#import "box.h"
@implementation box
- (id)init
{
self = [super init];
if (self) {
[self setState:0];
[self setFilled:NO];
}
return self;
}
-(void) setState:(int)input
{
state = input;
[self setFilled:YES];
if (state == 0)
{
[self setFilled:NO];
}
}
-(int) getState
{
return self.state;
}
-(BOOL)filled
{
return self.filled;
}
-(void)setFilled:(BOOL)input
{
filled = input;
}
@end
我正在制作自己的制定者和吸气者,因为当我做@property (nonatomic) int state;
时,我遇到了问题。每当调用getState时,我都会收到一个程序接收信号:“SIGABRT”错误。控制台说:
-[box state]: unrecognized selector sent to instance 0x4e51970
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[box state]: unrecognized selector sent to instance 0x4e51970'
如何修复此错误? 感谢。
答案 0 :(得分:4)
您是否在类实现中使用@synthesize
来合成属性?
编辑合成属性时,默认情况下,获取者将为propname
而不是getPropname
。