gpt4 book ai didi

iphone - 核心数据 NSSet 返回空对象数组

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:19:56 25 4
gpt4 key购买 nike

更新:在我完全实现玩家之前,我的游戏数据库中有没有玩家的幽灵条目。它返回那些条目,而不是更新模型的最新条目

我正在努力让 Core Data 数据库正常工作,但在关系方面遇到了一些麻烦。我对整个事情都很陌生,所以不要把任何东西放在我身边,我什至可能不了解基础知识。但我们还是走了。

这是我创建新游戏实体的地方。 Players 是与选择并存储在数组中的多个 Player 实体的 to-may 关系。

    Game *newGame = [NSEntityDescription insertNewObjectForEntityForName:@"Game" inManagedObjectContext:[SDDataManager dataManager].managedObjectContext];
[newGame setGameType:@"multipleChoice"];
[newGame setDate:[NSDate date]];
NSSet *playersSet = [NSSet setWithArray:players];
[newGame setPlayers:playersSet];
[newGame setCards:[NSKeyedArchiver archivedDataWithRootObject:selectedCards]];

NSError *error;
[[SDDataManager dataManager].managedObjectContext save:&error];
NSLog(@"New Game Error: %@",[error localizedDescription]);

问题是当我像这样从数据库中调用它时:

NSFetchRequest *requestSavedGame = [NSFetchRequest fetchRequestWithEntityName:@"游戏"]; [requestSavedGame setFetchLimit:1];

NSError *error;
NSArray *loadedGame = [[SDDataManager dataManager].managedObjectContext executeFetchRequest:requestSavedGame error:&error];
NSLog(@"Load Game Error: %@",[error localizedDescription]);

Game *game = [loadedGame objectAtIndex:0];
NSLog(@"Players Set: %@",game.players);
NSLog(@"Players: %@",[game.players allObjects]);

玩家:是空的??它准确地返回:

Players Set: Relationship 'players' fault on managed object (0xd023b70) <Game: 0xd023b70> (entity: Game; id: 0xd023180 <x-coredata://E6A82377-31D2-4D11-B890-B3FDC5A03E0E/Game/p1> ; data: {
cards = <62706c69 73743030 d4010203 0405086e 6f542474 6f705824 6f626a65 63747358 24766572 73696f6e 59246172 63686976 6572>;
currentPlayer = 0;
date = "2012-03-27 18:20:07 +0000";
gameType = multipleChoice;
players = "<relationship fault: 0xd01fd60 'players'>";
})

Players: ( )

我不明白为什么 players 是一个完整的数组,然后当它进入时是一个完整的集合但是当它出来时 [set allobjects] 返回一个空数组......

最佳答案

我建议您对任何 key 使用 valueForKey

在核心数据中,故障不是错误,这意味着您正在尝试从不存在的核心数据中访问。我会说你应该使用 setPropertiesToFetch 指定提取应返回哪些属性。

关于iphone - 核心数据 NSSet 返回空对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9896020/

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