我从一个url抓取数据,这是一个PHP脚本,它是从MySQL数据库编码我的数据的JSON。我的数据进入我的应用程序,我知道如何解析它,但我不确定如何将我的数据放在我的集合视图中的每个项目的textField.stringvalue中。我在这个主题上发现的大部分信息都是针对iOS的,我正在为OS X制作应用程序。
ViewController.swift
import Cocoa
class ViewController: NSViewController {
@IBOutlet weak var collectionView: NSCollectionView!
var productCategories: [ProductCategory]?
let baseURL = "http://myURL"
override func viewDidLoad() {
super.viewDidLoad()
getJSON()
self.collectionView.reloadData()
}
func getJSON(){
let url = NSURL(string: baseURL)
let request = NSURLRequest(url: url! as URL)
let session = URLSession(configuration: URLSessionConfiguration.default)
let task = session.dataTask(with: request as URLRequest) { (data,response,error) -> Void in
if error == nil {
let swiftyJSON = JSON(data:data!)
print(swiftyJSON)
let product = swiftyJSON[].arrayValue
for name in product{
let names = name["product_name"].stringValue
print(names)
}
} else{
print("Error")
}
}
task.resume()
}
override var representedObject: Any? {
didSet {
// Update the view, if already loaded.
}
}
}
extension ViewController: NSCollectionViewDataSource{
func collectionView(_ collectionView: NSCollectionView, numberOfItemsInSection section: Int) -> Int {
if let count = productCategories?.count {
return count
}
return 0
}
func collectionView(_ collectionView: NSCollectionView, itemForRepresentedObjectAt indexPath: IndexPath) -> NSCollectionViewItem {
let item = collectionView.makeItem(withIdentifier: "ImageCollectionViewItem", for: indexPath)
item.textField?.stringValue = Product.product_name
return item
}
}
Model.swift
import Foundation
class ProductCategory: NSObject {
var name: String?
var productss: [Product]?
var type: String?
}
class Product: NSObject {
var id: NSNumber?
var product_name: String?
var product_price: NSNumber?
var product_description: String?
var product_image: String?
var product_download: String?
var product_video: String?
var product_featured: Int?
}