2

2つの変数が宣言されている.hファイルがあり、次にさまざまなメソッドを持つ.mファイルがあります。これらはすべて、.hファイルから2つの変数にアクセスする必要があります。

これが.hファイルで、2つの変数パスとdocumentsDirectoryが含まれています

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

}

私の.mファイルでは、最初のメソッドは2つの変数を初期化することになっており、もう1つのメソッドはそれらにアクセスすることを目的としています。

-(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を入れて、documentsDirectoryを出力しようとすると、プログラムがクラッシュします。

何かアドバイス?明らかな何かが欠けているだけかもしれないと思います。

4

1 に答える 1

2

自動解放されたオブジェクトを返すことを想像します(参照には明示的に記載されていません)ので、次のことを試してください。NSSearchPathForDirectoriesInDomains

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

メソッドでリリースする必要がありますがdealloc、これはすでに実行していると思います。

値を保持することをまったく気にしないでください(必要なときにいつでもpaths呼び出すだけです)。NSSearchPathForDirectoriesInDomains

于 2012-06-27T21:20:46.853 に答える