[英]Storing array of structures for a class
我想知道存儲結構數組的最佳方法。
我有一個Movie
結構,該結構具有名稱和與之關聯的圖像
struct Movie {
var name = ""
var image = ""
}
和擁有最愛movies
的Person
,他/她只能從靜態movies
挑選
class Person {
static let movies = [Movie(name: "movie 1", image: "movie-1.png"),
Movie(name: "movie 2", image: "movie-2.png")]
var movie = Movie()
}
這是存儲結構數組的有效方法嗎?
例如,我可能啟動了許多Person
實例,並且movies
列表可能會增加。
var alex1 = Person()
alex1.movie = movies[0]
var alex2 = Person()
alex2.movie = movies[0]
...
僅在Person
對象中存儲每個電影的鍵(例如索引)會更有效率。 當然,然后,您必須確保影片數組不會在不重新映射所有對象的情況下使那些鍵無效。
我還將將Movies數組與Movie對象保持在一起。 這有點合乎邏輯。
struct Movie {
static let movies = [
Movie(name: "movie 1", image: "movie-1.png"),
Movie(name: "movie 2", image: "movie-2.png")]
let name:String
let image:String
}
class Person {
var movieIndex:Int = 0
var movie:Movie? {
get {
return Movie.movies[movieIndex]
}
}
}
var alex1 = Person()
alex1.movieIndex = 0
var alex2 = Person()
alex2.movieIndex = 1
alex1.movie?.name // "movie-1.png"
alex2.movie?.name // "movie-2.png"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.