Простая запись в файл не работает для меня - PullRequest
0 голосов
/ 27 сентября 2011

Я не могу заставить эту простую строку записать в файл. Пожалуйста, посмотрите на мой код. Это простой кончик с NSTextField и кнопкой. Журнал показывает, что я получаю строковое значение в порядке, но не записывает.

//Quick.h

#import <Foundation/Foundation.h>

@interface Quick : NSObject
{
    IBOutlet NSTextField * aString;
}

-(IBAction)wButton:(id)sender;

@end

//Quick.m

#import "Quick.h"

@implementation Quick

- (id)init
{
    self = [super init];
    if (self) {
        // Initialization code here.
    }

    return self;
}

-(IBAction)wButton:(id)sender{

    NSString * zStr = [aString stringValue];
    NSString * path = @"data.txt";
    NSLog(@"test String %@", zStr);
    [zStr writeToFile:path 
           atomically:YES 
             encoding:NSASCIIStringEncoding 
                error:nil]; 

}


@end

Ответы [ 2 ]

3 голосов
/ 27 сентября 2011

Вы должны указать полный путь к файлу, скорее всего, к папке Documents, а не просто имя файла.

NSString *zStr = [aString stringValue];
NSArray  *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *directory = [paths objectAtIndex:0];
NSString *fileName = @"data.txt";
NSString *filePath = [directory stringByAppendingPathComponent:fileName];
[zStr writeToFile:filePath atomically:YES encoding:NSASCIIStringEncoding error:nil]; 
2 голосов
/ 27 сентября 2011

Вам необходимо указать абсолютный путь.

Этот код из другого ответа дает вам путь к каталогу документов вашего приложения:

 [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...