2

我有一个 .h 文件,其中声明了 2 个变量,然后我有一个 .m 文件,其中包含多种方法,所有这些都需要从 .h 文件中访问 2 个变量。

这是 .h 文件,带有 2 个变量路径和文档目录

@interface create_textViewController : UIViewController {
IBOutlet UITextField *textField1;
IBOutlet UITextView *textView;
NSArray *paths;
NSString *documentsDirectory;

}

在我的 .m 文件中,第一种方法应该初始化 2 个变量,然后另一种方法只是用来访问它们。

-(void)viewDidLoad{
[super loadView];
NSLog(@"viewdidload");
paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
documentsDirectory = [paths objectAtIndex:0];

}

-(void)toiPad{
NSString *name = [NSString stringWithFormat:@"%@/output.txt", documentsDirectory];
NSString *content = [[NSString alloc] initWithFormat:@"%@", textView.text];
[content writeToFile:name atomically:NO encoding:NSStringEncodingConversionAllowLossy error:nil];

}

但是,当我在 toiPad 方法中放入一个 NSLog 并尝试输出文档目录时,程序崩溃了。

有什么建议吗?我想我可能只是错过了一些明显的东西。

4

1 回答 1

2

我会想象(引用没有明确说明它)NSSearchPathForDirectoriesInDomains返回一个自动释放的对象,所以试试:

documentsDirectory = [[paths objectAtIndex:0] retain];

您需要在dealloc方法中释放它,我假设您已经在这样做了。

根本不用费心保持paths价值(NSSearchPathForDirectoriesInDomains只要你再次需要它就打电话)。

于 2012-06-27T21:20:46.853 回答