更新:我有我的遊戲數據庫中沒有玩家的幽靈條目,我之前實現了玩家。它正在返回這些條目不是最新的條目與更新的模型核心數據NSSet返回空對象陣列
我正在努力獲得一個核心數據數據庫的工作和一些關係的麻煩。我對整件事情都很陌生,所以不要把任何東西放在我身後,我甚至都不瞭解基本知識。但是,我們無論如何都要去。
這是我創建一個新的遊戲實體的地方。玩家與選中並存儲在數組中的多個玩家實體可能存在關係。
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: ()
我不理解爲什麼球員是一個完整的數組,然後全套當它在但是當它出來的[設置allobjects]返回一個空數組...
確切位置在哪裏,你說?就像[game.players valueForKey:@「name」]?或類似的東西? – 2012-03-27 19:41:57
我在說,我懷疑你的遊戲是否有玩家:P – 2012-03-27 19:44:24
我認爲你是對的。所以,當我設置播放器時,我的存儲語句有什麼問題...我設置的NSSet不是空的。爲什麼核心數據沒有保存或拋出錯誤? – 2012-03-27 19:48:17