我正在学习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"];
我做错了什么?我想稍后在列表视图中显示该对象
答案 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