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