gpt4 book ai didi

objective-c - 如何打印实体 - CoreData

转载 作者:行者123 更新时间:2023-11-28 17:34:10 25 4
gpt4 key购买 nike

我想打印一个实体。

我有一个 JSON,我得到了值,将它们设置在我的实体中。现在我想显示我的实体以查看它是否设置正确,如何设置?

这是我的代码,它似乎可以工作,NSLOG 打印出我想要的。很酷。

- (void)viewDidLoad
{
[super viewDidLoad];

dataToDisplay = [[NSMutableArray alloc] init];

//récupération du chemin vers le fichier contenant le JSON
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"JSON" ofType:@"txt"];

//création d'un string avec le contenu du JSON
NSString *myJSON = [[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:NULL];

//Parsage du JSON à l'aide du framework importé
NSDictionary *json = [myJSON JSONValue];

//récupération du total des Boxes
NSDictionary *resultats = [json objectForKey:@"totalBox"];

//récupération du tableau de Boxes
NSArray *listBoxes = [resultats objectForKey:@"boxes"];

//On parcourt la liste de boxes
for (NSDictionary *dic in listBoxes) {

getBoxes *boxes = [[getBoxes alloc] init];
boxes.nameBox = [dic objectForKey:@"boxName"];
//renseingement du score
boxes.priceBox = [dic objectForKey:@"boxPrice"];
boxes.kindBox = [dic objectForKey:@"boxKind"];
boxes.typeBox = [dic objectForKey:@"boxType"];
//ajout à la liste
[dataToDisplay addObject:boxes];

//libération de la mémoire
[boxes release];
}

NSLog(@"boxKind %@", [[listBoxes objectAtIndex:1] valueForKey:@"boxKind"]);
//à ne pas oublier après l'allocation effectuée au début


// TEST
NSManagedObjectContext *cxt = [self managedObjectContext];
NSManagedObject *newBoxes = [NSEntityDescription insertNewObjectForEntityForName:@"Boxes" inManagedObjectContext:cxt];
[newBoxes setValue:[[listBoxes objectAtIndex:1] valueForKey:@"boxKind"] forKey:@"kindBox"];
[newBoxes setValue:[[listBoxes objectAtIndex:1] valueForKey:@"boxPrice"] forKey:@"priceBox"];
[newBoxes setValue:[[listBoxes objectAtIndex:1] valueForKey:@"boxType"] forKey:@"typeBox"];
[newBoxes setValue:[[listBoxes objectAtIndex:1] valueForKey:@"boxName"] forKey:@"nameBox"];


NSError *err;
if (![cxt save:&err]) {
NSLog(@"An error has occured: %@", [err localizedDescription]);
}

[myJSON release];

NSLog(@"%@", [newBoxes valueForKey:@"kindBox"]);
NSLog(@"%@", [newBoxes valueForKey:@"priceBox"]);
NSLog(@"%@", [newBoxes valueForKey:@"typeBox"]);
NSLog(@"%@", [newBoxes valueForKey:@"nameBox"]);


}

最佳答案

寻找这个方法

entityForName:inManagedObjectContext:

从与指定托管对象上下文的持久存储协调器关联的托管对象模型返回具有指定名称的实体。

返回值与上下文的持久存储协调器相关联的托管对象模型中具有指定名称的实体。

此方法在功能上等同于以下代码示例。

NSManagedObjectModel *managedObjectModel = [[context persistentStoreCoordinator] managedObjectModel];
NSEntityDescription *entity = [[managedObjectModel entitiesByName] objectForKey:entityName];
return entity;

我希望你不是在找这样的东西

NSLog(@"%@",[newBoxes name]);

关于objective-c - 如何打印实体 - CoreData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10335120/

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