繁体   English   中英

EXC_BAD_ACCESS错误?

[英]EXC_BAD_ACCESS Error?

在我的应用中是一个非常非常乏味的错误! 几乎每次我构建应用程序时,都会出现“ EXC_BAD_ACCESS”错误! 没关系,可能会有错误,但是如果我再次尝试构建应用程序,则错误会再次出现,但会出现另一行代码!

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
UIStoryboard *mainStoryboard = nil;
if ([[UIScreen mainScreen] bounds].size.height <= 480) {
    mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
} else {
    mainStoryboard = [UIStoryboard storyboardWithName:@"Main4er" bundle:nil];
}

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[self.window setRootViewController:[mainStoryboard instantiateInitialViewController]];
[self.window makeKeyAndVisible]; // HERE THE ERROR COMES SOMETIMES
return YES; }

我不知道我的错在哪里! 我不使用发行版,请保留-开始开发应用程序时将其关闭!

有时错误来自以下行:

UILabel * labelNiederlage = [[UILabel alloc] initWithFrame:CGRectMake(243, -2, 40, 26)];

有人可以帮我吗?

就像一个想法一样,如果您使用情节提要,则可以安全地删除这些行

UIStoryboard *mainStoryboard = nil;
    if ([[UIScreen mainScreen] bounds].size.height <= 480) {
        mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    } else {
        mainStoryboard = [UIStoryboard storyboardWithName:@"Main4er" bundle:nil];
    }
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[self.window setRootViewController:[mainStoryboard instantiateInitialViewController]];

制作两个不同屏幕高度的情节提要板也是一个坏主意,因为您可以在单个情节提要中制作动态高度的元素

可能是因为您不使用属性,您的应用程序失败了, mainStoryboad必须是(strong, nonatomic)并且必须具有对指针的强引用(使用属性时会自动维护该指针,即self.mainStoryboad

从几行代码中很难分辨出来。 正如Dig所说,您的分镜脚本可能不会保留。 不过,我还是建议采用以下方法:

1)确保您的某处没有悬空指针,这很可能是问题的根源。

->看一下您对情节提要板(以及其他!)的处理方式。 你以某种方式保留它吗? 按照约定,storyboardWithName返回一个自动释放的对象。 如果没有任何帮助,您可能需要自己保留。 其他人也一样。

->在启用僵尸模式的情况下运行乐器,您可能会发现一些有趣的东西。 我建议启用此功能并保留数量

2)如果您不能通过此工具发现它,请在一个几乎没有故事板的新项目中构建一个简单的测试用例。 这可能有助于找出问题所在。

3)将您的代码与一个有效的示例进行比较。 他们有很多。 只需找出其中之一即可。

希望这可以帮助。

每当您遇到此类错误时,您都可以使用“ 僵尸对象”来提示发生了什么问题。

转到“ YourProjectName” (停止btn旁边的右侧) ->“编辑方案”->“启用Guard Malloc启用Zombi对象” 然后只需设置制动点,看看发生了什么。

但是,这是相当昂贵的操作,因此您可能要在解决问题时将其关闭。

问候,

托里斯

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM