Xcode中的“EXC_BAD_ACCESS”

时间:2011-10-11 14:57:00

标签: iphone objective-c xcode cocoa-touch

在运行iphone模拟时,我在Xcode中显示“EXC_BAD_ACCESS”的错误

代码如下:

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”错误

我不知道为什么代码会出错。帮助我。

2 个答案:

答案 0 :(得分:1)

你真的遗漏了这里的必需品(实际作业),而你在你的例子中使用的是iWeight而不是nWeight(错误我确定)。只需确保在分配NSNumber时,您实际为其分配了一个NSNumber对象而不是文字(例如,nWeight = 5)。并确保您使用该属性。 self.nWeight = [NSNumber numberWithInt:5];

答案 1 :(得分:0)

我认为你的意思是nWieght在NSLog线上 - 如果不用更多代码更新。

nWieght在其一生中发生了什么?它是否有值 - 该值是否已释放并取消分配?

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

还有很多其他方法可以导致EXC_BAD_ACCESS,我在这里记录了这些:

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