2009-11-09 32 views
1

即時得到一個「CFDictionaryAddValue():不可變集合0xd5aea0給變異函數」iphone將writeToFile錯誤

錯誤,當我嘗試使用follwowing代碼

NSString *xmlString = [NSString stringWithString:xmlData]; 
NSError *error = nil; 
if ([xmlString writeToFile:filePath atomically:NO encoding:NSASCIIStringEncoding error:&error]) 

XMLDATA是寫一個字符串到一個文件一個可變的字符串,但xmlString不是。

有什麼想法?

+1

你確定它的代碼生成錯誤?我看不出有什麼問題(乍一看)。 – mahboudz 2009-11-09 09:42:01

+0

做這個工作? NSString * xmlString = [xmlData copy]; ...你的其他代碼在這裏,然後... [xmlString發佈]; – wkw 2009-11-09 13:10:42

回答

2

它適合我在可可。

NSString * xmlData = @"This is some random string"; 
NSString * xmlString = [NSString stringWithString:xmlData]; 
NSError * error = nil; 
if (![xmlString writeToFile:@"data.txt" 
       atomically:NO 
        encoding:NSASCIIStringEncoding 
         error:&error]) 
{ 
    NSLog(@"writeToFile failed: %@", error); 
} 

我會檢查:

  • 你怎麼XMLDATA?它是一個NSString?
  • 您是否在應用程序包中指定文件路徑?除了我認爲的文檔(?)之外,您將無法在應用程序目錄之外編寫代碼。

你這是怎麼會在Documents目錄中指定的文件:

// Documents directory 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                NSUserDomainMask, YES); 
NSString *documentsPath = [paths objectAtIndex:0]; 

// <Application Home>/Documents/foo.plist 
NSString *fooPath = [documentsPath stringByAppendingPathComponent:@「foo.plist」];