swift - 找不到 swift 类型的初始值设定项

标签 swift

struct PhoneP {
    var name = "Un-Name"
    var pphone = "Un-Phone"
    let NumOfDay = ""
    let date :NSDate = NSDate()
}

class PhoneManager: NSObject {

    var phones = [PhoneP]()

    func addPhone(name: String, phone: String, Nday: String){
        phones.append(PhoneP(name: name, pphone: phone, NumDay: Nday ,date: NSData()))
        //phones.append(Phone(name: name, pphone: phone, NumOfDay: Nday, date: NSDate()))
}

error: swift:28:23: Cannot find an initializer for type 'Phone' that accepts an argument list of type '(name: String, pphone: String, NumOfDay: String, date: NSDate)'

为什么会出现此错误?

最佳答案

numOfDaydate 是您已经设置的常量。之后您将无法更改它们。只需使用:

PhoneP(name: "name", pphone: "phone")

或者将您的结构更改为:

struct PhoneP {
    var name = "Un-Name"
    var pphone = "Un-Phone"
    let NumOfDay: String
    let date: NSDate
}

然后您可以像这样创建结构:

PhoneP(name: "name", pphone: "phone", NumOfDay: "day", date: NSDate())

此外,您要将 NSData() 添加到 NSDate 的类型中,因此它也不会编译。

phones.append(PhoneP(name: name, pphone: phone, NumDay: Nday ,date: NSData()))

关于swift - 找不到 swift 类型的初始值设定项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31972877/

相关文章:

objective-c - Swift 相当于 valueForKey :

ios - 我可以在应用程序终止后从 NSUserDefaults 检索数据吗?

ios - 如何让 AVPlayer 立即出现而不是在视频结束后出现?

swift - 无法使用 SQLite.swift 构建命令行项目

swift - Firebase 注销在 Swift 中不起作用

ios - 无法将类型 'Swift._ContiguousArrayStorage<Swift.AnyObject>' 的值转换为 'NSMutableArray'

ios - 快速从 dataTaskWithURL 获取进度

ios - 使用委托(delegate)从 xib 向 VC 传递数据

ios - [Swift]如何将字符串分配给 UITextField?

swift - 进程(NSTask)fileHandleForReading readabilityHandler 闭包未在 Linux 上调用