2

アプリを保存するときにタイムスタンプを付けたいので、重複を避けることができますコードを使用しています

NSArray *directoryNames = [NSArray arrayWithObjects:@"hats",@"bottoms",@"right",@"left",nil];
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder

    for (int i = 0; i < [directoryNames count] ; i++) {
        NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:[directoryNames objectAtIndex:i]];
        if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath])
            [[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:nil]; //Create folder

        NSString *folderPath = [documentsDirectory stringByAppendingPathComponent:@"hats"]; // "right" is at index 2, per comments & code
        NSString *filePath = [folderPath stringByAppendingPathComponent:@"IMAGE_NAME_HERE.PNG"]; // you maybe want to incorporate a timestamp into the name to avoid duplicates
        NSData *imageData = UIImagePNGRepresentation(captureImage.image);
        [imageData writeToFile:filePath atomically:YES];
    }
} 

タイムスタンプなどを入れるにはどうすればよいですか?タイムスタンプである必要がないので、重複を止めたいだけです

4

3 に答える 3

3

タイムスタンプを直接使用でき、重複する可能性はありません。以下のコードを確認してください

time_t unixTime = (time_t) [[NSDate date] timeIntervalSince1970];
NSString *timestamp=[NSString stringWithFormat:@"%ld",unixTime];
于 2013-08-17T06:21:42.607 に答える
0

あなたはそれを明確にしませんでしたが、あなたが望むのは、ファイル名の一部として日付を追加することだと思います.

これを行うには、" NSDateFormatter" を使用して NSDate オブジェクト (たとえば、今日の日付?) を文字列に変換する必要があります。これは、その文字列を作成する方法を示す関連する質問です

ファイルまたはフォルダー名の一部として日付を作成したくない場合は、ファイルがフォルダー パス内に既に存在するかどうかを確認することもできます。存在する場合は、png ファイルを書き込まないでください。

于 2013-08-17T06:20:42.270 に答える
0

このNSDateセレクターを使用できます。

- (NSTimeInterval)timeIntervalSince1970

1970 年 1 月 1 日 00:00:00 GMT からの秒数を返します。

例:

time_t getTime = (time_t) [[NSDate date] timeIntervalSince1970];

ファイルが保存されたときに参照できるように保存できます。

于 2013-08-17T06:21:29.257 に答える