【发布时间】:2015-07-30 13:06:57
【问题描述】:
在我的 swift 项目中得到 Immutable value of type '[String]' only has mutating member 的错误并研究了一些答案,但似乎没有一个能在我的上下文中解决问题。看一看:
导入 UIKit
class PassionViewController: UIViewController {
var factIndex = 0
var counter = 1
@IBOutlet var QuoteImage: UIImageView!
@IBOutlet weak var funFactLabel: UILabel!
let factBook = FactBook()
let Liked = Favourite()
override func viewDidLoad() {
super.viewDidLoad()
funFactLabel.text = factBook.factsArray[factIndex]
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
}
*/
@IBAction func showFunFact() {
factIndex++
if (factIndex >= factBook.factsArray.count) {
self.factIndex = 0
}
funFactLabel.text = factBook.factsArray[factIndex]
if counter == 36 {
counter = 1
} else {
self.counter++
}
QuoteImage.image = UIImage(named: "frame\(counter).jpg")
}
@IBAction func goBack() {
factIndex--
var number = factBook.factsArray.count-1
if (factIndex < 0){
self.factIndex = number
}
funFactLabel.text = factBook.factsArray[factIndex]
if counter == 1 {
counter = 36
} else {
self.counter--
}
QuoteImage.image = UIImage(named: "frame\(counter).jpg")
}
@IBAction func Like() {
let currentQuote = factBook.factsArray[factIndex]
Liked.favouriteArray.append(currentQuote)
}
}
let currentQuote = factBook.factsArray[factIndex], factBook.factsArray 是从另一个视图控制器检索到的,它是一个数组集合。 Liked.favouriteArray.append(currentQuote) 是将此元素存储到 favouriteArray 中,它来自一个名为 Favourite 的结构:
import Foundation
struct Favourite {
var favouriteArray:[String] = []
}
但是,Liked.favouriteArray.append(currentQuote) 行正在生成错误:“[String]”类型的不可变值只有可变成员。我该如何解决这个错误?
【问题讨论】: