2011-09-26 53 views
0

我無法將此簡單字符串寫入文件。 請看我的代碼。這是一個簡單的筆尖,帶有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 

回答

3

你必須提供一個完整的文件路徑,最有可能的文件目錄,而不僅僅是一個文件名。

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]; 
+0

謝謝。我試過了,它工作。 – Miek

2

您需要提供絕對路徑。

這從another answer代碼爲您提供了路徑到您的應用程序的文件目錄:

[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];