gpt4 book ai didi

ios - 如何在 xcode 8 中的对象中引用数组中的对象?

转载 作者:行者123 更新时间:2023-11-28 08:08:38 25 4
gpt4 key购买 nike

我想尝试在 xcode 8 中引用此 json ( link here) 中的所有“标题”。问题是在我可以提取标题之前需要引用一个对象和数组(我相信)数据,我不确定该怎么做。

到目前为止,这是我得到的:

func fetchFeed(){
let urlRequest = URLRequest(url: URL(string: "http://itunes.apple.com/us/rss/topalbums/limit=10/json")!)

let task = URLSession.shared.dataTask(with: urlRequest) { (data,response,error) in

if error != nil {
print(error)
return
}

self.artists = [Artist]()
do {
let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as! [String : AnyObject]

if let feedFromJson = json["feed"]?["entry"] as? [[String : AnyObject]] {
for feedFromJson in feedsFromJson {
let feed = Feed()
if let entry = feedFromJson["entry"] as? String, let author = feedFromJson["domain"] as? String {

feed.entry = entry

article.headline = title

}
self.articles?.append(article)
}
}
DispatchQueue.main.async {
self.tableview.reloadData()

提前感谢您的帮助!

最佳答案

我正在努力了解您的需求。如果你想获得一个 Article 数组,其中 headline 是条目的标题标签,下面是我如何欺骗它。

func articles(from json: Any?) -> [Article] {
guard let json = json as? NSDictionary, let entries = json.value(forKeyPath: "feed.entry") as? [NSDictionary] else {
return []
}

return entries.flatMap { entry in
guard let title = entry.value(forKeyPath: "title.label") as? String else {
return nil
}

var article = Article()
article.headline = title
return article
}
}

你这样调用它

self.articles = articles(from: json)

NSDictionary 具有近乎神奇的方法 value(forKeyPath:)。调用 json.value(forKeyPath: "feed.entry") 返回字典数组。每个字典都是 json 中的一个 "entry" 对象。接下来,我映射每个条目以调用返回字符串的 entry.value(forKeyPath: "title.label")


如果这不仅仅是一个快速解决方案,那么我会考虑添加 SwiftyJSON到您的项目。

func articles(from json: Any?) -> [Article] {
return JSON(json)["feed"]["entry"].arrayValue.flatMap { entry in
guard let title = entry["title"]["label"].string else {
return nil
}

var article = Article()
article.headline = title
return article
}
}

关于ios - 如何在 xcode 8 中的对象中引用数组中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44379690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com