0

複数の日付形式を変換するクラスがあります。

これを行うと機能します:

-(NSString*)getTimeStampWithFormat:(NSString*) formatStr{
    dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:formatStr];
    NSString *currentDate = [dateFormatter stringFromDate:[NSDate date]];
    return currentDate;
}

これを行うと機能しません

-(void) initDF{
    dateFormatter = [[NSDateFormatter alloc] init];
}

-(NSString*)getTimeStampWithFormat:(NSString*) formatStr{
    [dateFormatter setDateFormat:formatStr];
    NSString *date = [dateFormatter stringFromDate:[NSDate date]];
        return currentDate;
}

メソッドを複数回呼び出して、getTimeStampWithFormat:さまざまな形式を変換しています。2 番目のアプローチでは、メモリを 1 回だけ割り当て、複数回変換すると nil になります。

どんな助けでも感謝します、ありがとう。

4

1 に答える 1

0

アップルが言ったように:

日付フォーマッタの作成は安価な操作ではありません。フォーマッタを頻繁に使用する可能性がある場合は、通常、複数のインスタンスを作成して破棄するよりも、単一のインスタンスをキャッシュする方が効率的です。1 つの方法は、静的変数を使用することです。

しかし、なぜ常に nil を返すのか疑問に思っています。フォーマット文字列をいくつか見せていただけますか?

注: 質問にコメントを追加する方法を知っている人はいますか? 「コメント」ボタンが見つかりません。

于 2012-09-11T23:37:45.843 に答える