小编Dav*_*sey的帖子

使用Blocks会在iPhone模拟器4.3/XCode 4.2和4.0.2中崩溃应用程序

还有其他人在XCode 4.2(Lion)或4.0.2中遇到4.3 iPhone模拟器的问题吗?

我的代码长期以来一直在工作,测试和生产中使用块来指定完成操作.例如,我使用UIView动画来淡出标签顶部的一些文本,如下所示:

[UIView animateWithDuration: 0.0 
                      delay: 0.0 
                    options: (UIViewAnimationOptionCurveEaseInOut | UIViewAnimationOptionTransitionNone)
                 animations: ^{

                     videoTextLabel1.alpha = 0.0;
                     videoTextLabel2.alpha = 0.0;
                     videoTextLabel3.alpha = 0.0;
                 }

                 completion: ^(BOOL completed) {
                     [self fadeInNextMeditationLine: 0];
                 }];
Run Code Online (Sandbox Code Playgroud)

我可靠地在模拟器中获得EXEC_BAD_ACCESS - 从来没有在设备上出现问题.

在另一个地方,我使用自己的完成块实现来在用户解除模态视图后采取行动.

    ValuePickerController *controller = 
    [[ValuePickerController alloc] 
        initWithNibName: kValuePickerXIBFileName
        bundle: nil
        labelText: @"prompt")
        value: alertSettings.frequency
        minimumValue: kMinimumFrequency
        maximumValue: kMaximumFrequency
     completionBlock: ^(NSInteger newValue) {
         [self updateFrequencyText: newValue];
         [self changeFrequencySetting];
     }];
Run Code Online (Sandbox Code Playgroud)

没有NSZombies出现,分析仪运行干净.此外,此代码已生产6个月,没有崩溃.

还有其他人有这个麻烦吗?自从我升级XCode以来,它一直在发生.

xcode objective-c ios objective-c-blocks ios-simulator

7
推荐指数
1
解决办法
4496
查看次数