Setter中的静态变量

时间:2016-04-27 22:34:54

标签: ios objective-c swift static

System::Net::Httpclient::THTTPClient* httpcl=System::Net::Httpclient::THTTPClient::Create(); IHTTPResponse* httpresp=httpcl->Get("http://time.is/"); ShowMessage(httpresp->StatusText); //ShowMessage(httpresp->ContentAsString(TEncoding::Default)); httpcl->Free(); 中,我在名为Obj-C

的setter中有以下代码段
setTime:(NSDate *)time

这可以防止每次调用setter时都创建static NSDateFormatter *dateFormatter; if (!dateFormatter) { dateFormatter = [NSDateFormatter new]; dateFormatter.dateFormat = @"h a"; } self.title.text = [dateFormatter stringFromDate:time];

在Swift中,我的setter目前看起来像这样:

dateFormatter

是否有相当于如何在Swift的setter中创建静态变量?

1 个答案:

答案 0 :(得分:3)

您可以向类中添加静态类型属性。这将创建NSDateFormatter:

private static let dateFormatter: NSDateFormatter = {
    let df = NSDateFormatter()
    df.dateFormat="h a"
    return df
}()

然后在你的setter中引用它:

var time:NSDate {
    didSet {
        self.text = self.dynamicType.dateFormatter.stringFromDate(time)
    }
}