指向整数转换的指针不兼容

时间:2013-10-18 08:40:36

标签: objective-c uitableview

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

Class.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

Class.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"];

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

2 个答案:

答案 0 :(得分:1)

Class.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

Class.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”描述:@“obra de prueba”aasm_state:@“En proceso”clienteID:@“dm2”];

答案 1 :(得分:0)

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

[[ObrasData alloc] initWithID:[NSNumber numberWithInt:1] presupuesto:100 描述:@“obra de prueba”aasm_state:@“En proceso”clienteID:@“dm2”]; < / p>

presupuesto更改为Char