我被建議儘可能在Swift中使用結構體,因爲已經有很多結構體(Int,String,Array,Dictionary,幾乎所有東西都是)。如何處理與Swift中的結構體的關係?
但是,如果我有一個關係(有反向)來處理,我不能拿出一個令人滿意的解決方案,尤其是在數據源的一個UITableView
的情況。一個例子是:Game
對象有多個Player
,並且每個Player
有多個Game
。
辦法一個
我存儲在一個列表中的相同結構的所有實例,我給一個ID,每個實例,每次我需要相關對象的時候,我取的名單。
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] = []
}
問題
如何處理與斯威夫特結構的關係?上述兩種方法之一是否比其他方法更好?還是有更好的方法?
那麼,除了其他建議,Apple使用'struct Restaurant'的例子:https://developer.apple.com/swift/blog/?id = 37 –