Frage

Ich versuche das letzte Änderungsdatum einer Datei zu erhalten:

NSFileManager *fm = [[NSFileManager alloc] init];
NSError *err;
NSDate *lastModif = [[fm attributesOfItemAtPath:filename error:&err] objectForKey:NSFileModificationDate];//filename is ok ;-)
if(err == nil) {
    [lastModif retain];
    //I can put a NSLog of lastModif here, it works !!
    NSTimeInterval lastModifDiff = [lastModif timeIntervalSinceNow];//crash here
}

Ich verstehe nicht, warum das NSDate veröffentlicht zu werden scheint, warum der Rückhalt sie nicht behält.

Vielen Dank, wenn Sie eine Idee haben ...

War es hilfreich?

Lösung

Sie müssen nicht behalten lastModif. Ich denke, Sie könnten versuchen zu behandeln lastModifDiff Als Objekt irgendeiner Art, wenn Sie ein NSlog damit machen oder was auch immer Sie danach damit machen. NSTimeInterval ist ein typedef zu einem doppelten [NSNumber numberWithDouble:lastModifDiff] Wenn Sie es wie ein Objekt verwenden möchten.

Andere Tipps

Ich habe das gleiche Problem, aber dieser Beitrag schien zu deutlich zu sein:

NSDate: TimeIntervalsinzenow Crash

Ich schreibe eine einfache Reihe von Funktionen - StartClock/Endclock - Verwenden von NSDate, um FPS in meiner Spielschleife zu bestimmen. Abgesehen von diesem TimeIntervalsincenow stürzt und behauptet, mein früherer NSDate -Objekt gibt es nicht.

Ich weiß, dass das NSDATE-Objekt eine Rücksichtnahme von 1 hat, wenn ich StartClock nenne, aber meine Theorie ist, dass NSDate-Instanzen intern zur automatischen Veröffentlichung manipuliert sind, wenn sie sich langweilen und sich nicht nützlich fühlen.

Verwenden von Rückhalt/Veröffentlichung, um das Eigentum dieser fliegenden und kurzlebigen NSDate -Objekte zu übernehmen, funktionierten für mich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top