Я создаю приложение с моделью MVC. Я использую ленивую технику загрузки, чтобы заполнить переменную. (Модель) И эта переменная находится на одном UIViewController (Controller)Swift: ленивая переменная нагрузки против модели MVC?
Но я не знаю, как перезагрузить или вызвать контроллер вида, когда действие модели закончено. Вот мой код
Модель (данные ленивых нагрузки)
class func allQuotes() -> [IndexQuotes]
{
var quotes = [IndexQuotes]()
Alamofire.request(.GET, api_indexquotes).responseJSON { response in
if response.result.isSuccess && response.result.value != nil {
for i in (response.result.value as! [AnyObject]) {
let photo = IndexQuotes(dictionary: i as! NSDictionary)
quotes.append(photo)
}
}
}
return quotes
}
И часть зрения контроллера
Индекс Класс:
UIViewController,UICollectionViewDelegate,UICollectionViewDataSource {
var quotes = IndexQuotes.allQuotes()
var collectionView:UICollectionView!
override func viewDidLoad() {
Это действительно серьезный вопрос, я путают, какая техника будет использоваться для полного заполнения моей цели?
Ну, у меня тест. Оно работает. Благодарю. Я снова собираюсь закрыть и завершить, и я нашел это http://stackoverflow.com/questions/34548180/what-is-the-best-way-to-handle-response-from-alamofire-for-a-tableview быстро. Я думаю, что это похоже на ваше решение, но они используют ключевое слово lazy перед переменной. Ты знаешь почему? – TomSawyer
В упомянутой теме для создания экземпляра класса используется ленивая переменная. Здесь вы используете функцию класса, которая совершенно иная. – vadian
@TomSawyer Заявление 'self.indexQuotes = quotes' должно быть выполнено в основном потоке, иначе оно не является« потокобезопасным »;) – CouchDeveloper