2011-01-13 11 views
-1

Hallo Leute, In meiner App muss ich überprüfen, dass die Datei tatsächlich auf dem Gerät vorhanden ist, bevor es von einigen Dateizugriffsmethoden zugegriffen wird (UIImage imageNamed, Cocos2d CCSprite-Methode und so auf).Advanced Cocoa Kategorie - allen Dateizugriff abfangen - iOS

Ich muss sicher sein, dass die Datei auf dem Gerät ist (und wenn nicht versuchen, es von den Servern abzurufen). Kann ich es tun, ohne den gesamten Code zu ändern, um es zu unterstützen? Ich dachte an etwas wie eine 'Super Category' auf dem Dateisystem ... Ist es möglich ???

ich diese Idee sah, was Sie overriding-methods-in-cocoa-without-subclassing

Dank denken Sie! M.

Antwort

0

ist es am besten zu versuchen, die Datei/URL lesen und Fehler ordnungsgemäß - Dateisysteme haben eine Möglichkeit der Änderung.

Wenn Sie das Bildbündel kennen, verwenden Sie NSBundle.

0

könnten Sie NSFileManager fileExistsAtPath: verwenden, aber aus der Dokumentation:

/* Die folgenden Methoden sind von begrenztem Nutzen. Der Versuch, ein Verhalten auf der Grundlage des aktuellen Zustands des Dateisystems oder einer bestimmten Datei im Dateisystem zu prädizieren, fördert ein merkwürdiges Verhalten angesichts von Dateisystem-Race-Bedingungen. Es ist viel besser, eine Operation (wie das Laden einer Datei oder das Erstellen eines Verzeichnisses) zu versuchen und den Fehler elegant zu behandeln, als vorher zu versuchen, herauszufinden, ob die Operation erfolgreich ist.

So versuchen Sie wahrscheinlich nur, um die Ressource zu erhalten, wenn es fehlschlägt, holen Sie und dann erneut versuchen.