- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
// Date formatter for displaying dates
static NSDateFormatter *dateFormatter = nil;
if(dateFormatter == nil){
dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeStyle:NSDateFormatterMediumStyle];
[dateFormatter setDateFormat:NSDateFormatterMediumStyle];
}
Run Code Online (Sandbox Code Playgroud)
为什么我们初始化dateFormatter变量然后立即测试它是否为零?我在较新的Apple代码中注意到了这一点.好奇!
-水牛
这是因为变量是一个局部静态变量,这意味着即使在本地函数返回或超出范围之后它也会保持其值.因此,第一次执行该函数时,该变量设置为nil.然后,检查nil并初始化变量(这只发生一次).每次执行该函数时,该变量都将具有非零值,因此不会执行初始化代码块.
| 归档时间: |
|
| 查看次数: |
207 次 |
| 最近记录: |