1
我正在尝试使自定义类在我的iPhone应用程序中保存数据。我想要一个包含2个变量的盒子对象,它是状态(作为一个int)以及它是否被填充。 (为bool)在我的.h我有这样的:使用原始数据类型创建自定义类Obj-c
#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
我做我自己的getter和setter方法,因为当我做@property (nonatomic) int state;
我有问题。无论何时调用getState,我都会收到一个Program收到的信号:“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'
如何解决此错误? 谢谢。
是的,我合成它。我会尝试改变它回到物业的工作,我想我从那时起改变了一些东西。 – Cole
“@属性”方式奏效。对不起,我提交了一个完整的问题来解决这个简单的问题。 – Cole