2

我在看ObjectMapper库。并注意到了<-操作员。

这究竟是如何工作的?

// Mappable
func mapping(map: Map) {
    username    <- map["username"]
    age         <- map["age"]
    weight      <- map["weight"]
    array       <- map["arr"]
    dictionary  <- map["dict"]
    bestFriend  <- map["best_friend"]
    friends     <- map["friends"]
    birthday    <- (map["birthday"], DateTransform())
}

还有下一行是如何工作的

birthday    <- (map["birthday"], DateTransform())

我知道birthday现在是一个元组。哪个可以访问

self.birthday.0
self.birthday.1

虽然属性是这样定义的

var birthday: NSDate?

元组如何响应NSDate(在这种情况下)?

谢谢!

4

1 回答 1

5

如果您查看他的核心库中的 Operators.Swift 文件,您会发现他的自定义运算符的所有重载。

他定义了他的自定义运算符:

infix operator <- {}

然后他的操作员有很多重载,这是他列表中的第一个重载:

/// Object of Basic type
public func <- <T>(inout left: T, right: Map) {
    switch right.mappingType {
    case .FromJSON:
        FromJSON.basicType(&left, object: right.value())
    case .ToJSON:
        ToJSON.basicType(left, map: right)
    }
}

你需要通过他的每一个重载来了解它们是如何工作的,他有几十个

运营商

于 2016-03-04T17:19:10.777 回答