ios - 在 swift 中初始化一个具有数组作为属性的自定义对象

标签 ios arrays string swift class

创建了一个名为员工的类,如下所示:

class Employees: NSObject {

    var name: String
    var employeeRoles: [String]
    var departmentID: Int

    init(name:String, employeeRoles:[String], departmentID:Int){
        self.name = name
        self.employeeRoles = employeeRoles
        self.departmentID = departmentID
    }   
}

在 View 中,有一个文本字段,您可以在其中输入员工角色(当然是字符串)。我试图将哪些信息输入到其各自的字段中,创建一个新的员工对象并将其打印到调试控制台。然而,我们尝试将字符串输入到 View 中的以下行使程序崩溃,并且没有提供任何有关原因的进一步信息:

let newEmployee = Employees(name:  (employeeFirstNameInputField.text! + " " +  (employeeLastNameInputField.text)!), employeeRoles:  (employeeListingInputField.text as? [String])!, departmentID: 0)

    print(newEmployee.name)

我哪里出错了?

最佳答案

假设您的文本字段被声明为 weak var textField: UITextField!,那么您将像这样创建新员工。

let name = employeeFirstNameInputField.text + " " +  employeeLastNameInputField.text
let listings = employeeListingInputField.text.componentsSeparatedByString("\n")
let newEmployee = Employees(name: name, employeeRoles: listings, departmentID: 0)

您需要将列表文本字段中返回的字符串拆分为字符串数组。每个新的数组元素都由换行符分隔。还有其他方法可以做到这一点(例如调用 split)。

关于ios - 在 swift 中初始化一个具有数组作为属性的自定义对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36118020/

相关文章:

c - 为 scanf_s 输入数据时程序停止

ios - 是否必须为 iOS 7 开发人员使用 Storyboard?

ios - 如何检查整个应用程序中是否有任何 UIBackgroundTask 处于事件状态?

java - 如何读取/更新存储在 map 内的值,该 map 随后位于 Cloud Firestore 的数组内?

python - 如何使用python显示文件夹中word文档的文件名?

c - 为什么在函数调用中找不到指针数组的大小?

iphone - 如何在Xcode 4中创建项目模板

ios - 如何通过 CBL2CAPChannel 发送和接收数据

java - 确定字符串是否具有唯一字符

string - Swift 格式化本地化字符串