2015-11-13 132 views
0

總共有3個類。訪問不同類中的類對象

  1. 在第一節中,它將全部使用init來管理字符串。
  2. 在第二個類中,它爲第一個類創建一個類對象的數組。
  3. 在第三類中,它將訪問存儲在第二類中的數據。 (這是我需要知道的。)

FirstClass.swift

class Person{ 
    var name : String 
    var description : String 

    init(name: String, description: String){ 
     self.name = name 
     self.description = description 
    } 

SecondClass.swift

class StoreData: UIViewController { 

    var personList = [Person]() 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     self.personList.append(Person(name: "John", description: "123")) 
     self.personList.append(Person(name: "Mary", description: "456")) 
    } 

在這個類ThirdClass.swift

所以,我需要訪問存儲在SecondClass.swift中的數據。假設我要存儲一個字符串數組。我想提取哪裏var names = personList[0].name我該怎麼做?

+0

你的代碼不起作用。 'StoreData'有'override func viewDidLoad()',但不是從'UIViewController'繼承的。 – katleta3000

+0

添加了UIViewController。 –

+0

什麼是您的ThirdClass swift?爲什麼要像'UIViewController'一樣創建'StoredData'類?你使用'MVC'?你能否將StoredData的引用傳遞給你的第三課? – katleta3000

回答

0

你的情況,最簡單的方法,使其工作是這樣的:

class StoreData: UIViewController { 
    static var sharedData = StoreData() 
    var personList = [Person]() 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     self.personList.append(Person(name: "John", description: "123")) 
     self.personList.append(Person(name: "Mary", description: "456")) 
    } 
} 

class ThirdClass { 

    func someFunc() { 
     let person1 = StoreData.sharedData.personList[0] 
     print(person1) 
    } 
} 

但它不是最好的方法,但你不能解釋你所需要的。希望你明白,這段代碼使得來自StoreData的單身人士。它會爲你工作。