我一直在尝试创建我的第一个方便初始值设定项。我得到这个错误:
我得到错误:参数'valueInDollars'必须在参数'serialNumber'之前
这里是我所有的代码,我的问题是在我的代码的底部,但我认为它是有用的,以显示一切。
import UIKit
class Item: NSObject {
var name: String
var valueInDollars: Int
var serialNumber: String?
let dateCreated: NSDate
init(name: String, valueInDollars: Int, serialNumber: String?) {
self.name = name
self.valueInDollars = valueInDollars
self.serialNumber = serialNumber
self.dateCreated = NSDate()
super.init()
}
//create a random item:
convenience init(random: Bool = false) {
if random {
let adjectives = ["Fluffy", "Rusty", "Bluffy"]
let nouns = ["Boon", "Noon", "Toon",]
var idx = arc4random_uniform(UInt32(adjectives.count))
let randomAdjective = adjectives[Int(idx)]
idx = arc4random_uniform(UInt32(nouns.count))
let randomNoun = nouns[Int(idx)]
let randomName = "\(randomAdjective) \(randomNoun)"
let randomValue = Int(arc4random_uniform(100))
let randomSerialNumber = NSUUID().UUIDString.componentsSeparatedByString("-").first!
self.init(name: randomName, serialNumber: randomSerialNumber, valueInDollars: randomValue)
}
else {
self.init(name: "", serialNumber: nil, valueInDollars: 0)
}
}
}
最佳答案
您应该用定义init本身时使用的参数顺序调用init
self.init(name: "", valueInDollars: 0, serialNumber: nil)