我有一个类
class OrderViewDetail{
var order : Order
init(order: Order){
self.order = order
}
}
现在有什么区别
var order1 = OrderViewDetail.init
和
var order2 = OrderViewDetail.init(order: order)
两者之间实际上有一个主要区别,
- 第一个创建一个变量,该变量包含一个函数
init(order:)
- 第二个创建
OrderViewDetail
的新实例
var order1 = OrderViewDetail.init // type is (Order) -> OrderViewDetail
var order2 = OrderViewDetail.init(order: someOrderObject) // type is OrderViewDetail
使用第一个变量创建新的OrderViewDetail
let order3 = order1(someOrderObject)
var order1=OrderViewDetail.init
这将order1
设置为init
方法。以后可以使用let eg = order1(Order())
创建新的OrderViewDetail
对象。
var order2=OrderViewDetail.init((
这不会编译,因为OrderViewDetail
中没有无参数的init
。如果添加此项,将创建一个新的OrderViewDetail
对象并将其分配给order2