使用IBAction调用后,变量重置

时间:2011-08-12 23:54:25

标签: objective-c xcode cocoa variables

在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

当我从UI中的按钮调用doSomething时,我收到了错误的访问错误。

我知道这应该发生,但我不知道为什么或解决方法。

谢谢, 将


1 个答案:

答案 0 :(得分:1)

您收到错误的访问错误,因为该内容未在内存中正确管理,如此问题中所述:EXC_BAD_ACCESS signal received。根据您发布的代码,您永远不会分配和初始化someString,因此永远不会释放它。我相信你没有收到null,因为someString对象永远不会占用任何内存。