gpt4 book ai didi

ios - 初始化对象时出错

转载 作者:行者123 更新时间:2023-11-29 04:12:51 24 4
gpt4 key购买 nike

下面是一个方法的开头,该方法自始至终都执行相同的操作。但是我收到错误:无法在 NSManagedObject 类“Car”上调用指定的初始值设定项

我做错了什么,谢谢。

- (Car*) initWithJSONData:(NSDictionary *)responseData {
BOOL isActive;
self = [super init];

Car*coreDataCar =(Car*)[NSEntityDescription insertNewObjectForEntityForName:@"Car" inManagedObjectContext:[self managedObjectContext]];
//Check if car is active or deactive.
if (![responseData valueForKeyIsNull:@"Car Status"]) {
int carStatus = [[responseData valueForKey:@"Car Status"] intValue];
if (carStatus == 1 ) {//active
isActive=YES;
}else if( carStatus == 2 ){
isActive = NO;
}
}


if (![responseData valueForKeyIsNull:@"Name"]) {
[coreDataCar setValue:[responseData valueForKey:@"Name"] forKey:@"name"];
}
NSLog(@"user count = %@",[responseData valueForKey:@"UserCount"]);//Sometimes it crashes here, others it doesnt
if (![responseData valueForKeyIsNull:@"UserCount"]) {
//[responseData valueForKey:@"UserCount"];
[coreDataCar setValue:[responseData valueForKey:@"UserCount"] forKey:@"userCount"];
}

最佳答案

这是它提示的调用:

 self = [super init];

稍后你这样做:

Car*coreDataCar =(Car*)[NSEntityDescription insertNewObjectForEntityForName:@"Car" inManagedObjectContext:[self managedObjectContext]];

您应该摆脱这两个调用并将它们替换为如下所示:

- (id) initWithJSONData:(NSDictionary *)responseData
inManagedObjectContext:(NSManagedObjectContext *) moc {

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Car"
inManagedObjectContext:moc];
if (self = [super initWithEntity:entity insertIntoManagedObjectContext:moc]) {

...

}
return self;
}

另请注意,init 方法通常具有 id 返回类型。

关于ios - 初始化对象时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14167220/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com