2011-10-11 36 views
-1

同时运行iPhone仿真,显示了针对 “EXC_BAD_ACCESS” 错误在Xcode“EXC_BAD_ACCESS” 在Xcode

代码如下:

Test.h

@interface Test : UIViewController 
{ 
    NSNumber *nWieght; 
} 

@property (nonatomic,retain) NSNumber *nWieght; 

end 

Test.m

@implementation Test 

@synthesize nWieght; 

- (void)viewDidLoad 
{ 
    ... 
} 

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 

    **NSLog(@"integer Number is :%@", iWeight); // error occur** 

} 

如果我点击UIAlertView的按钮,Xcode出现“EXC_BAD_ACCESS”错误代码

我不知道为什么代码发生错误。帮我。

+0

nWieght可能未被保留,因此已被释放。 – jbat100

+0

我使用ViewdidLoad方法初始化了iWeight。 – Nockdoo

+0

你可以发布你初始化nWieght的代码行吗? – jbat100

回答

0

我假设你是指nWieght NSLog行 - 如果不更新更多的代码。

nWieght在其一生中发生了什么?它是否有价值 - 是否释放和交易价值?

最简单的方法是使用僵尸工具打开僵尸。这将设置每个对象在完全释放时不释放,而是将其变为僵尸对象。如果您尝试向僵尸发送消息,它会在控制台中大声抱怨,并且您可以更好地指出您做错了什么。

还有许多其他的方式来使EXC_BAD_ACCESS,这是我记录在这里:

http://loufranco.com/blog/files/Understanding-EXC_BAD_ACCESS.html

1

你真的离开了这里的要领(实际分配),并且使用iWeight代替nWeight的(错字我当然可以)在你的例子中。只要确定当你指定NSNumber时,你实际上将它分配给NSNumber对象而不是文字(例如nWeight = 5)。并确保您使用该属性。 self.nWeight = [NSNumber numberWithInt:5];