我發現了幾個代碼片斷,描述瞭如何將數據寫入用戶的應用程序Documents文件夾。但是,當我在iPhone模擬器中試用這個時,沒有創建文件。我叫爲什麼我不能將文件寫入我的應用程序的Document目錄?
[NSFileManager isWritbleAtPath:<my document folder>]
,它返回0(假)。我是否需要使該文件夾明確可寫,如果是,我該怎麼做?
我發現了幾個代碼片斷,描述瞭如何將數據寫入用戶的應用程序Documents文件夾。但是,當我在iPhone模擬器中試用這個時,沒有創建文件。我叫爲什麼我不能將文件寫入我的應用程序的Document目錄?
[NSFileManager isWritbleAtPath:<my document folder>]
,它返回0(假)。我是否需要使該文件夾明確可寫,如果是,我該怎麼做?
感謝您的指點。因此,在通過一些文檔辛苦工作之後,我發現我做錯了:試圖保存一個NSArray,它不是由NSDictionary,NSArray或NSString等基本數據類型組成的。我試圖保存一個MPMediaItems數組(從SDK 3.0+中的MediaKit框架)。
iPhone模擬器應該能夠寫入整個磁盤。我的應用程序經常將測試文件轉儲到啓動卷的根級別(使用[NSData's writeToPath:@"/test.jpg" atomically:NO]
)。
您確定您已經正確確定了文檔文件夾的路徑嗎?您需要展開路徑中的代字號。以下是我的應用程序用於將文檔放入文檔文件夾的代碼。我不認爲有更多的設置參與!
brushesDir = [[@"~/Documents/BrushPacks/" stringByExpandingTildeInPath] retain];
// create brush packs folder if it does not exist
if (![[NSFileManager defaultManager] fileExistsAtPath: brushesDir])
[[NSFileManager defaultManager] createDirectoryAtPath:brushesDir withIntermediateDirectories:YES attributes:nil error:nil];
NSLog(@"writable: %d", [[NSFileManager defaultManager] isWritableFileAtPath:NSHomeDirectory()]);
這在控制檯上打印1。
你是不是要調用isWritableAtPath或isWritableFileAtPath方法?你是否打算在課程本身或其默認實例上調用它?
我試過了,它返回0.這是我想知道我在做什麼錯 – casademora 2009-07-18 11:46:32
我在寫入NSBundle的文件中遇到了一個微不足道的問題。我有一個要求,一旦應用程序啓動,需要使用服務器更新文本文件,並且它與模擬器一起運行良好,但與設備無關。後來我發現我們沒有使用NSBundle的寫入權限。將文件複製到NSBundle的Documents目錄中並用於我的目的解決了我的問題。我用: [myPlistData writeToFile:fileName atomically:NO];
我很懷疑。我會試試這個。謝謝! – casademora 2009-07-18 11:47:53