懒加载

2017-01-10  本文已影响13人  JanuaryMei

懒加载

当实例化一个对象可能耗费很多资源的,或者需要只配置一次并且有一些配置方法需要调用,而且你还不想弄乱这些方法。

在这个情况下,我们可以选择使用重载属性的 getter 方法来做 lazy 实例化。通常这种操作的模板像这样:

- (NSDateFormatter *)dateFormatter {
  if (!_dateFormatter) {
    _dateFormatter = [[NSDateFormatter alloc] init];
        NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
        [dateFormatter setLocale:enUSPOSIXLocale];
        [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSSS"];
  }
  return _dateFormatter;
}

即使在一些情况下这是有益的,但是我们仍然建议你在决定这样做之前经过深思熟虑,事实上这样是可以避免的。下面是使用 延迟实例化的争议。

上一篇下一篇

猜你喜欢

热点阅读