在 swift 中从 class 创建数组

create array from class in swift

我似乎无法创建包含用户的数组。 我必须创建 10 个用户的数组.. 如何正确创建它?

import UIKit

enum DeviceType {
    case Phone, Tablet, Watch
}

enum OperatingSystemType {
    case iOS, Android, Windows
}

struct OperatingSystemVersion {
    var Major: Int
    var Minor: Int
    var Patch: Int
}

struct OperatingSystem{
    var type: OperatingSystemType
    var version: OperatingSystemVersion

}

class Device {
    var DeviceID: Int
    var Type: DeviceType
    var Operating_System: OperatingSystem
    var UserID: Int
    var Description: String
    var InventoryNR: String
    init () {
        DeviceID = 1233
        Type = .Phone
        Operating_System = OperatingSystem(type: .iOS, version: OperatingSystemVersion(Major: 9, Minor: 0, Patch: 2))
        UserID = 2
        Description = "took"
        InventoryNR = "no17"
    }
}

class User {
    var UserID: Int
    var Username: String
    var Location: String
    var Devices: [Device]
    init() {
        UserID = 566
        Username = "david"
        Location = "Fortech"
        Devices = [Device.init()]
    }
}

var Users = [User] ()
Users.append(UserID: 23, Username: "David", Location: "HQ", Devices : User)

您需要为您的 User class(以及其他 class 创建一个有效的初始值设定项,但我们在这里关注 User 作为例如)。

class User {
    var UserID: Int
    var Username: String
    var Location: String
    var Devices: [Device]
    init(userID: Int, username: String, location: String, devices: [Device]) {
        self.UserID = userID
        self.Username = username
        self.Location = location
        self.Devices = devices
    }
}

现在您可以创建一个用户:

let david = User(userID: 23, username: "David", location: "HQ", devices : [Device()])

并将其添加到您的 Users 数组中:

Users.append(david)

注意:class名称以大写字母开头,但变量应以小写字母开头。所以你的 var UserID: Int 应该是 var userID: Int 例如,Users 数组应该是 users,等等