Swift: как хранить массив пользовательских объектов в Core Data?
С помощью Swift
а также Core Data
Я хочу хранить массив пользовательских Game
объекты в моем обычае User
класс в базе данных.
GameOwned
переменная является Transformable
, Я хочу иметь возможность хранить [Game]
внутри базы данных.
Как я могу добиться этого? Есть ли что-то особенное, что мне нужно сделать, чтобы иметь возможность прочитать его, как только я извлечу его из базы данных, кроме приведения его [Game]
?
Класс пользователя
class User: NSManagedObject {
@NSManaged var gameOwned: AnyObject
}
Игровой класс
class Game: NSManagedObject {
@NSManaged var coverPhoto: String
@NSManaged var genre: String
@NSManaged var id: String
@NSManaged var isActive: NSNumber
@NSManaged var isOwned: NSNumber
@NSManaged var name: String
@NSManaged var platform: String
}
1 ответ
Ваш Game
уже является объектом Core Data. Вы должны установить отношения между User
а также Game
, Это должно быть для многих, и вы могли бы назвать это games
,
Отношения являются очень основными понятиями базовых данных. Вы делаете это в редакторе модели Core Data в XCode. Пожалуйста, прочтите это сначала в Руководстве по программированию основных данных.
Если у вас есть эта настройка, вы можете получить доступ к связанным элементам очень просто.
var aGame = user.games.anyObject as? Game
Вышеприведенное не является обязательным, потому что не может быть игр и т. Д