1

我正在学习 Objective-C 并且我在项目中遇到了一些问题。我用一种方法创建了一个类来创建一个新对象,我在尝试创建一个新对象时遇到了一些问题,我不知道在这种情况下什么是最好的比例。

类.h

    #import <Foundation/Foundation.h>

@interface ObrasData : NSObject

@property (strong) NSNumber *ID;
@property (assign) char presupuesto;
@property (assign) char descripcion;
@property (assign) char aasm_state;
@property (assign) char clienteID;

- (id)initWithID:(NSNumber*)ID presupuesto:(char)presupuesto description:(char)description aasm_state:(char)aasm_state clienteID:(char)clienteID;

@end

类.m

@implementation ObrasData

@synthesize ID = _ID;
@synthesize presupuesto = _presupuesto;
@synthesize descripcion = _descripcion;
@synthesize aasm_state = _aasm_state;
@synthesize clienteID = _clienteID;

- (id)initWithID:(NSNumber *)ID presupuesto:(char)presupuesto description:(char)description aasm_state:(char)aasm_state clienteID:(char)clienteID{
    if ((self = [super init])) {
        self.ID = ID;
        self.presupuesto = presupuesto;
        self.descripcion = description;
        self.aasm_state = aasm_state;
        self.clienteID = clienteID;
    }
    return self;
}

在这里我遇到了错误:“指向整数转换的指针不兼容”

 ObrasData *obra1 = [[ObrasData alloc] initWithID:[NSNumber numberWithInt:1] presupuesto:100 description:@"obra de prueba" aasm_state:@"En proceso" clienteID:@"dm2"];

我做错了什么?我想稍后在列表视图上显示该对象

4

2 回答 2

1

类.h

    #import <Foundation/Foundation.h>

@interface ObrasData : NSObject

@property (strong) NSNumber *ID;
@property (strong) NSString *presupuesto;
@property (strong) NSString *descripcion;
@property (strong) NSString *aasm_state;
@property (strong) NSString *clienteID;

- (id)initWithID:(NSNumber*)ID presupuesto:(NSString *)presupuesto description:(NSString *)description aasm_state:(NSString *)aasm_state clienteID:(NSString *)clienteID;

@end

类.m

@implementation ObrasData

@synthesize ID = _ID;
@synthesize presupuesto = _presupuesto;
@synthesize descripcion = _descripcion;
@synthesize aasm_state = _aasm_state;
@synthesize clienteID = _clienteID;

- (id)initWithID:(NSNumber *)ID presupuesto:(NSString *)presupuesto description:(NSString *)description aasm_state:(NSString *)aasm_state clienteID:(NSString *)clienteID{
    if ((self = [super init])) {
        self.ID = ID;
        self.presupuesto = presupuesto;
        self.descripcion = description;
        self.aasm_state = aasm_state;
        self.clienteID = clienteID;
    }
    return self;
}

并像这样调用: ObrasData *obra1 = [[ObrasData alloc] initWithID:[NSNumber numberWithInt:1] presupuesto:@"100" description:@"obra de prueba" aasm_state:@"En proceso" clienteID:@"dm2"] ;

于 2013-10-18T08:50:11.543 回答
0

在 initWithID 方法中,第二个参数输入类型是 char 但您传递的是整数 100。

[[ObrasData alloc] initWithID:[NSNumber numberWithInt:1] presupuesto:100 description:@"obra de prueba" aasm_state:@"En proceso" clienteID:@"dm2"];

presupuesto 更改为 Char

于 2013-10-18T08:47:19.953 回答