2015-11-13 8 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

Что такое ваш третий класс? Почему вы используете класс 'StoredData', например' UIViewController'? Вы используете '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) 
    } 
} 

Но это не самый лучший способ, но вы не можете объяснить то, что вам нужно. Надеюсь, вы понимаете, что этот код делает singleton от StoreData. И это сработает для вас.

Смежные вопросы