Переменные сбрасываются после вызова с IBAction - PullRequest
2 голосов
/ 13 августа 2011

В Objective-c у меня установлены переменные в файле интерфейса:

#import <Cocoa/Cocoa.h>

@interface TestApp_BotAppDelegate : NSObject <NSApplicationDelegate> 
    {
   NSString * someString;
    }
- (IBAction) doSomething:(id)sender;

@end

И есть это

#import "TestApp_BotAppDelegate.h"
@implementation TestApp_BotAppDelegate

@synthesize window;
@synthesize Buildings;
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
    {
    someString=@"HELLO";
    }

- (IBAction) doSomething:(id) sender
    {
    NSLog(@"%@", someString);
    }
@end

Когда я вызываю doSomething с помощью кнопки в пользовательском интерфейсе, я получаю ошибку неверного доступа.

Я знаю, что это должно произойти, но я не знаю, почему или как это обойти.

Спасибо, Будет


1 Ответ

1 голос
/ 13 августа 2011

Вы получаете ошибку неверного доступа, потому что строка неправильно обрабатывается в памяти, как объяснено в этом вопросе: Получен сигнал EXC_BAD_ACCESS . В соответствии с кодом, который вы опубликовали, вы никогда не выделяете и не инициализируете someString, и поэтому никогда не выпускаете его. Я полагаю, что вы не получаете null, потому что объект someString никогда не занимает память для начала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...