【发布时间】:2013-12-29 19:32:05
【问题描述】:
我创建了一个类NetCalculator,当按下按钮时我会调用它。该方法计算网络它得到 2 NSStrings 并返回一个 id 对象(“网络”对象或“UIAlertView”。然后我正在检查哪个对象是并呈现数据。当我使用 UIAlertView应用在显示 2-3 个警报后崩溃。
任何想法为什么会发生这种情况?在终端上它不会显示任何错误,只是一些随机的十六进制。
-(IBAction)calculate:(id)sender {
id result;
Network *network = [[Network alloc]init];
NetCalculator *netCalculated = [[NetCalculator alloc] init];
result = [netCalculated calculateNetworkWithIP:ipLabel.text andSubnet:subnetLabel.text];
if([result isKindOfClass:[Network class]]){
network = result;
NSLog(@"network %@",network.networkIP);
}
else if([result isKindOfClass:[UIAlertView class]]) {
UIAlertView *alert;
alert = result;
[alert show];
}
};
【问题讨论】:
-
崩溃的原因是什么?什么是堆栈跟踪?
-
你应该分配和初始化你的 UIAlertView 对象吗?
-
尝试 NSLog 你的结果变量,看看它是什么。
-
在哪里保留 alertView?
-
问题似乎是它在 bg 中被随机释放.. 至少在 99% 的情况下是问题
标签: ios objective-c memory-management