Sin*_*ngh 6 initialization swift
我正在尝试从 NSMutableURLRequest 的子类中的自定义 init 返回一个实例:
class Request: NSMutableURLRequest {
func initWith(endPoint:String, methodType:RequestType, body:RequestBody,headers: [String:String]?) {
self = NSMutableURLRequest.init(url: URL.init(string: endPoint, relativeTo: URL?))
//return request
}
}
Run Code Online (Sandbox Code Playgroud)
但是编译器不允许这样做,我收到错误“无法分配给值:'self'是不可变的”。解决此问题的正确方法是什么,为什么编译器会在此处返回错误。
这是因为您的函数只是一个function,而不是一个初始化程序。
考虑以下示例:
class Request: NSMutableURLRequest {
convenience init (endPoint:String, methodType:RequestType, body:RequestBody,headers: [String:String]?) {
self.init(url: URL(string: endPoint)!)
}
}
Run Code Online (Sandbox Code Playgroud)
这里我们声明了便捷初始化器,它通过调用指定的初始化器来返回一个新对象。您不必分配任何内容,因为在构造(创建)对象时会调用 init。
| 归档时间: |
|
| 查看次数: |
6325 次 |
| 最近记录: |