2013-03-10 3 views
1

Используя приведенный ниже код, я могу получить только writeToFile, чтобы фактически сохранить файл. Он выводит в этот каталог:Сохранение NSString с writeToFile будет сохраняться только в одном месте

/Users/Eric/Library/Containers/net.ericmann.Event-Gadget-Workshop-App/Data/Documents/gadget.ics

- (IBAction)Saved:(id)sender { 
    [self writeToTextFile]; 
    //mySaved.stringValue = [NSString stringWithFormat:@"Saved!"]; 
} 


-(void) writeToTextFile{ 
    //get the documents directory: 

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 

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


    //NSString *pathToDesktop = [NSString stringWithFormat:@"/Users/%@/Desktop", NSUserName()]; 


    //make a file name to write the data to using the documents directory: 
    NSString *fileName = [NSString stringWithFormat:@"%@/gadget.ics", documentsDirectory]; 

    //create content - four lines of text 
    NSString *content = myOutput.stringValue; 

    //save content to the documents directory 
    [content writeToFile:fileName atomically:NO encoding:NSStringEncodingConversionAllowLossy error:nil]; 
    mySaved.stringValue = fileName; 
    myTestBox.stringValue = fileName; 
} 

сейчас , если я использую код ниже, ничего не напишет. У меня есть выход имя тестовый файл, и это указывает здесь:

/Users/Eric/Desktop/gadget.ics

-(void) writeToTextFile{ 
    //get the documents directory: 

    // NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 

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


    NSString *pathToDesktop = [NSString stringWithFormat:@"/Users/%@/Desktop", NSUserName()]; 

    //make a file name to write the data to using the documents directory: 
    NSString *fileName = [NSString stringWithFormat:@"%@/gadget.ics", pathToDesktop]; 

    //create content - four lines of text 
    NSString *content = myOutput.stringValue; 

    //save content to the documents directory 
    [content writeToFile:fileName atomically:NO encoding:NSStringEncodingConversionAllowLossy error:nil]; 
    mySaved.stringValue = fileName; 
    myTestBox.stringValue = fileName; 

ответ

1

Вы, вероятно, в конечном итоге выяснить, решение, если вам на самом деле делают использование: параметр ошибки там в "writeToFile" метод:

например:

NSError * error = NULL; 
BOOL success = [content writeToFile:fileName atomically:NO encoding:NSUTF8StringEncoding error:&error]; 
if(success == NO) 
{ 
    NSLog(@"error saving to %@ - %@", fileName, [error localizedDescription]); 
} 
+0

Любые мысли о выходе? 2013-03-09 21: 42: 10.421 Calendar Gadget [2458: 303] ошибка сохранения в /Users/Eric/Desktop/gadget.ics - (null) – loopifnil

+0

Благодарим за быстрый ответ! – loopifnil

+0

Я вижу слово «Контейнеры» в вашем вопросе, и я думаю, что это песочница. Попробуйте отключить песочницу *** *** (она находится в настройках Target) и посмотреть, есть ли у вас лучшие результаты при записи на ваш рабочий стол. –