簡體   English   中英

為一個類存儲結構數組

[英]Storing array of structures for a class

我想知道存儲結構數組的最佳方法。

我有一個Movie結構,該結構具有名稱和與之關聯的圖像

struct Movie {
    var name = ""
    var image = ""
}

和擁有最愛moviesPerson ,他/她只能從靜態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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM