【问题标题】:Cannot use mutating member on immutable value: 'n' is a 'let' constant不能对不可变值使用变异成员:“n”是“让”常量
【发布时间】:2019-01-06 01:17:43
【问题描述】:

我正在使用 rss 从网站获取数据。我想将这些数据设置为 struct 中的变量,但在 for 循环中出现错误。

struct News {
    var title: String
    var link: String
}

class HaberTableViewController: UITableViewController, XMLParserDelegate {
   var NewsArray:[News] = []

    override func viewDidLoad() {
        let url = "http://www.ensonhaber.com/rss/ensonhaber.xml"

        Alamofire.request(url).responseRSS() { (response) -> Void in
            if let feed: RSSFeed = response.result.value {
                for item in feed.items {
                    print(item.title!)
                    for n in self.NewsArray
                    {
                        n.title.append(item.title)
                        n.link.append(item.link)
                    }                    
                }             
            }
        }        
    }

.
.
.

}

【问题讨论】:

    标签: ios arrays swift struct swift4


    【解决方案1】:

    我认为您正在尝试使用来自feed.items 的值使用新的News 实例填充NewArray 数组。如果是这种情况,那么您的代码应该是:

    if let feed: RSSFeed = response.result.value {
        for item in feed.items {
            if let title = item.title, let link = item.link {
                let news = News(title: title, link: link)
                NewsArray.append(news)
            }
        }             
    }
    

    请注意,这也涉及item.title(可能是item.link)是可选的。

    请注意,变量名应以小写字母开头,因此NewsArray 应为newsArray

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-28
      相关资源
      最近更新 更多