0

我一直在开发一个 iOS 应用程序,现在几乎可以提交了。但是,当我将其提供给少数人进行测试时(运行 iOS 5)..他们报告了应用程序崩溃并且手机上显示主屏幕或出现冻结的应用程序屏幕而没有任何响应的情况

该应用程序启用了 ARC,并且 Xcode 不显示任何警告。所以,我对出了什么问题感到非常紧张。我以下列方式声明了属性:

@property (nonatomic) IBOutlet UILabel *devCountLabel;

@property (nonatomic) IBOutlet UIView *splashView;

同样,声明了其他属性。任何人都可以提供解决方案吗?它主要是一个基于网络的应用程序,因此,CoreData 的使用最少。

PS:该应用程序在模拟器中不会崩溃,所以我猜它与内存有关。而且崩溃是随机的。因此,重复一组步骤来重现崩溃也无济于事。例如。当我单击一个按钮时,modalViewControllerAnimation 会导致正常情况。现在这在大多数情况下都会按预期发生,并在其他时候冻结应用程序。

4

1 回答 1

3

崩溃日志会有所帮助,但这是我的猜测:

Interface Builder Outlet 属性应该是weak,所以它们nil在发布后变为。

在您的代码中,它们的语义是assign(默认情况下,因为您只编写nonatomic了),它用于原始类型。当它被释放时,你会得到一个悬空指针,当你使用它时,应用程序会崩溃。

试试这个:

@property (weak, nonatomic) IBOutlet UILabel *devCountLabel;
@property (weak, nonatomic) IBOutlet UIView *splashView;
于 2012-06-23T09:32:10.840 回答