2011-10-20 10 views

Odpowiedz

184

Tak. To będzie.

Oto niektóre znaki, które pozwalają przekroczyć limit 30 znaków.

+47

+1 dla „dokumentowanie” swoje dodatkowe znaki :) – Julian

+17

czy robisz to atomowo albo nie robi nieważne; w obu przypadkach plik zostanie całkowicie zastąpiony nowymi danymi. –

+0

Ah, ale dla mnie zawiedzie, a oryginalny plik jest nietknięty. Ponieważ writeToFile nie zwraca NSError, jak mogę zbadać awarię? może to być problem z uprawnieniami, ale nie mogę być tego pewien. Mój kod działa jako pakiet wtyczki instalatora, dla pakietu instalacyjnego wymagającego uprawnień root'a - nie wiem, jak zweryfikować/wydrukować uprawnienia, z którymi mój kod jest uruchamiany. –

3

Metoda writeToFile:atomically:ZAWSZE PLIK NADAWANIA, niezależnie od atomically: TAK lub NIE.

Informacje z Apple docs (NSData sekcja "Zapisywanie danych"):

The NSData class and its subclasses provide methods to quickly and easily save their contents to disk. To minimize the risk of data loss, these methods provide the option of saving the data atomically. Atomic writes guarantee that the data is either saved in its entirety, or it fails completely. The atomic write begins by writing the data to a temporary file. If this write succeeds, then the method moves the temporary file to its final location.

Nikt słowo o sprawdzenie, czy plik istnieje.

Na przykład dla metody copyItemAtPath:toPath:error: w docs (NSFileManager sekcja dyskusji) specjalnie napisane o takiej kontroli:

If a file with the same name already exists at dstPath, this method stops the copy attempt and returns an appropriate error.

Powiązane problemy