im vraiment nouveau rapide et sans votre aide, je ne peux pas aller de l'avant les garsDiscordance entre les données JSON et les classes que j'ai fait
quelqu'un peut-il s'il vous plaît me dire comment puis-je corriger cette erreur?
i mettre l'image d'erreur ci-dessous
import UIKit
import Alamofire
import SwiftyJSON
class AppCategory : NSObject {
var name : String?
var apps : [App]?
var type : String?
override func setValue(_ value: Any?, forKey key: String) {
if key == "apps " {
var apps = [App]()
for dict in value as! [[String:AnyObject]] {
let app = App()
app.setValuesForKeys(dict)
apps.append(app)
}
}else{
super.setValue(value, forKey: key)
}
}
static func fetchFeaturedApps (completionHandler : @escaping ([AppCategory]) ->()) {
let urlRequest = URLRequest(url:URL(string: "http://www.statsallday.com/appstore/featured")!)
URLSession.shared.dataTask(with: urlRequest as URLRequest) { (data, response, error) -> Void in
if error != nil {
print(error!)
return
}
do {
let json = try(JSONSerialization.jsonObject(with: data!, options: .mutableContainers)) as! [String : Any]
var appCategories = [AppCategory]()
for dict in json["categories"] as! [[String:Any]]{
let appcategory = AppCategory()
appcategory.setValuesForKeys(dict)
appCategories.append(appcategory)
}
DispatchQueue.main.async {
completionHandler(appCategories)
}
}catch let err {
print(err)
}
}.resume()
}
ici est ma classe
class App : NSObject {
var Id : NSNumber?
var Name : String?
var ImageName : String?
var Category : String?
var Price : NSNumber?
}
c'est un auj qui devrait passer en arrière cellule, mais me donne la désadaptation sur NSArray erreur
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: cellId, for: indexPath) as! AppCell
cell.apps = appCategory?.apps?[indexPath.item]
return cell
}
je ne sais pas comment FindOut quels types ne sont pas correspondent à
S'il vous plaît inclure les codes et les informations pertinentes dans votre question sous forme de texte. – OOPer