ios - getter setter 模型类 Oop

标签 ios swift oop

你好,我是 IOS 和 oop 编程的新手,所以我想知道执行此操作的最佳方法或标准方法是什么,我将对此进行描述。

我正在声明一个像这样的模型类

class Trip: NSObject {
    var tripTitle: String
    var tripSummary: String
    var fee: Int
    var departureCountry: String

init(userName: String,tripTitle: String, tripSummary: String,fee: Int, departureCountry: String) {
        self.tripTitle = tripTitle
        self.tripSummary = tripSummary

        self.fee = fee
        self.departureCountry = departureCountry
    } 

    }

在 Controller 类中,我首先设置这些变量的值,然后获取从类对象设置的值。现在我遇到一种情况,我只想设置这些类的几个变量而不是全部。因此,每当我想设置几个变量时,我都必须在类对象的参数中发送空值。所以我想知道如何定义自己的构造函数,或者是否也可以在没有构造函数的情况下执行此操作。 我在 google 上做了一些研究,并了解到计算属性 getter setter。但它表示,只有当您有机会希望返回经过一些修改的结果时,我们才能使用这些。所以我想知道实现这一目标的最佳方法或标准方法是什么

最佳答案

您可以通过在 init 方法中提供默认值来实现此目的

class Trip: NSObject {
  var userName: String
  var tripTitle: String
  var tripSummary: String
  var fee: Int
  var departureCountry: String

  init(userName: String = "", tripTitle: String = "" , tripSummary: String = "" , fee: Int = 0, departureCountry: String = "USA") {
    self.userName = userName
    self.tripTitle = tripTitle
    self.tripSummary = tripSummary
    self.fee = fee
    self.departureCountry = departureCountry
  }
}

现在你可以这样调用初始化器

let trip = Trip(userName:"John", fee: 12)

userName 设置为 John,fee 设置为 12,所有其他属性设置为默认值

<小时/>

或者您在声明行中分配默认值,那么您甚至不需要初始值设定项

class Trip: NSObject {
  var userName = ""
  var tripTitle = ""
  var tripSummary = ""
  var fee = 0
  var departureCountry = "USA"
}


let trip = Trip()
trip.userName = "John"
trip.fee = 12

您可以对选项执行相同的操作。

关于ios - getter setter 模型类 Oop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35293831/

相关文章:

ios - 一旦列表被删除,UITableView 将不会刷新。 self.tableView.reloadData() 也不起作用

ios - 导航栏仅显示在第一页 iOS Swift

java - AWS appium ios 测试总是失败

ios - 键盘打开时移动 View 的问题

swift - 为什么将 UIView 重用为两个 UITextField 的 .leftView 会导致大量内存使用

design-patterns - 面向对象/模式 : Customizing layout based on environment

python - 如何在Pygame中正确继承Surface类

swift - 困惑为什么 Realm LinkingObjects() 不起作用 :(

ios - CoreData 阻塞 UI

c++ - 为什么我需要在转换构造函数上引用 this->?