私はできるだけ多くのものが構造体(Int、String、Array、Dictionary、ほとんどすべてです)であるので、できるだけ構造体をSwiftで使うことを勧めました。Swiftの構造体との関係を扱うには?
私は対処するために(逆の)関係があれば、特にUITableView
のデータソースの場合は、という満足のいく解決策を思いつくことができませんでした。多くの例:Player
が複数あり、それぞれがPlayer
のGame
オブジェクトは複数のGame
を持っています。
アプローチ1
私は、リスト内の同じ構造体のすべてのインスタンスは、私が各インスタンスにIDを与える、と私はリストに私は、関連するオブジェクトを必要とするたびにフェッチ格納します。私は構造体から離れて移動する2つの
var allGames: [Game] = []
struct Game {
let id: String
var playerIds: [String]
var players: [Player] {
get { return allPlayers.filter({ playerIds.contains($0.id) }) }
}
}
var allPlayers: [Player] = []
struct Player {
let id: String
var gameIds: [String]
var games: [Game] {
get { return allGames.filter({ gameIds.contains($0.id) }) }
}
}
アプローチ。
class Game {
var players: [Player] = []
}
class Player {
var games: [Game] = []
}
スウィフトにおける構造体との関係をどのように扱うか質問
? 2つのアプローチのどちらか一方が他方よりも優れた方法であるか、それともより良い方法がありますか?
他のアドバイスの中でも、アップルは 'struct restaurant'の例を使っています:https://developer.apple.com/swift/blog/?id=37 –