Я схожу с ума по этой ошибке. Компилятор говорит вне области видимости для переменной NSSString экземпляра. Никогда раньше не имел этой вещи и использовал тысячи переменных экземпляра NSString!
Вот мой класс .h файл
#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>
#import <CoreAudio/CoreAudioTypes.h>
#import "Snapshot.h"
@interface RecordAudioViewController : UIViewController <AVAudioRecorderDelegate, AVAudioPlayerDelegate> {
NSString *filename;
}
@property (nonatomic, retain) NSString *filename;
- (IBAction) recordAudio;
- (IBAction) playAudio;
@end
Переменная синтезируется правильно. Я инициализирую переменную имени файла в методе viewDidLoad. Я хочу использовать его в метод IBAction recordAudio, но компилятор всегда говорит вне области видимости? Почему это ошибка или что-то в этом роде?
Вот код .m. Метод viewDidLoad, в котором я устанавливаю переменную экземпляра имени файла:
- (void)viewDidLoad {
[super viewDidLoad];
NSString * tmpDir = NSTevenDirectory ();
filename = [NSString stringWithFormat: @ "%. 0f.% @", [NSDate timeIntervalSinceReferenceDate] * 1000.0, @ "caf"];
NSLog (имя файла);
}
И метод IBAction
- (IBAction) recordAudio
{
NSLog(filename); // here I get out of scope message when moving over with mouse cursor and when steping over this line EXC_BAD_ACCESS
}
Весь файл .m можно увидеть здесь: http://pastie.org/1021993