хорошо я выборки данных из Интернета и эти данные аналогичны медленнеезагрузки данных после dispatch_get_global_queue конца
так что я должен загрузить его в dispatch_get_global_queue но viewDidLoad
, но главная проблема, что если есть CollectionView или таблица будет загружаться, пока данные выборки из интернета, а затем вид коллекции для секции дают мне ноль, как это можно сделать нагрузку вид коллекции после dispatch_get_global_queue закончить
import UIKit
class SectionViewController: UIViewController,UICollectionViewDelegate,UICollectionViewDataSource {
@IBOutlet weak var sectionTab: UIImageView!
@IBOutlet weak var sectionTitle: UILabel!
var sectionsPosts:JSON!
@IBOutlet weak var collectionView: UICollectionView!
var sectionsTap:JSON!
override func viewDidLoad() {
super.viewDidLoad()
let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT
dispatch_async(dispatch_get_global_queue(priority, 0)) {
if Reachability.isConnectedToNetwork() == true {
if let url = NSURL(string: "http://nepraswebsite.com/new_lille/mobile_api/blog/first_tab/1") {
if let data = try? NSData(contentsOfURL: url, options: []) {
self.sectionsTap = JSON(data: data)
}
}
if let newurl = NSURL(string: "http://nepraswebsite.com/new_lille/mobile_api/blog/posts_by_category/" + sections[tapIndex]["Slug"].stringValue + "/1") {
if let newdata = try? NSData(contentsOfURL: newurl, options: []) {
self.sectionsPosts = JSON(data: newdata)
}
}
self.collectionView.reloadData()
}
}
}
func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return sectionsPosts.count
}
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cellA = collectionView.dequeueReusableCellWithReuseIdentifier("postsCell", forIndexPath: indexPath) as! PostsCollectionViewCell
cellA.postImage.sd_setImageWithURL(NSURL(string: sectionsPosts[indexPath.row]["Image"].stringValue
), placeholderImage: UIImage(named: "demopic"))
cellA.postTitle.text = sectionsPosts[indexPath.row]["Title"].stringValue
return cellA
}
func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
UIApplication.sharedApplication().openURL(NSURL(string: sectionsPosts[indexPath.row]["URL"].stringValue
)!)
}
}
'return sectionPosts? .count ?? 0' – nhgrif
@nhgrif да, я слышу вас. Старые привычки умирают с трудом. – Michael
ty^_ ^, он работает как шарм: $ –