iOS開発用のObjectiveCを学び始めたところです。私は次のコードを理解しようとしています:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"BirdSightingCell";
static NSDateFormatter *formatter = nil;
if (formatter == nil) {
formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterMediumStyle];
}
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
BirdSighting *sightingAtIndex = [self.dataController objectInListAtIndex:indexPath.row];
[[cell textLabel] setText:sightingAtIndex.name];
[[cell detailTextLabel] setText:[formatter stringFromDate:(NSDate *)sightingAtIndex.date]];
return cell;
}
質問1:
変数CellIdentifierとformatterを宣言している間、「静的」は何をしますか?静的と宣言しなくても機能するので、静的を使用する利点は何ですか?
Q2:
static NSDateFormatter *formatter = nil;
if (formatter == nil) {
この表現はいつも本当ではないですか?そこでifステートメントを使用するのはなぜですか?