ios - 调试和发布的区别

标签 ios objective-c debugging release testflight

我有一个运行同步算法的应用程序。

当我在 Debug模式下构建并运行它(在我的 iPhone 5 上)时,一切正常。

但是,当我将其存档并将其上传到 TestFlight,然后下载并安装到同一个 iPhone 5 时,部分同步不起作用。

它不会崩溃或任何事情,它只是不运行同步的那部分。

愚蠢的是,它是一个没有运行的单个函数中的一行代码。该函数中的其他所有内容都会运行。

我不知道从哪里开始寻找这个。

编辑

在 Mindaugas 的帮助下,我确切地找到了为什么以及哪些代码没有运行。

功能是...

- (void)uploadData
{
    NSLog(@"pushing photos");
    for (StoredImage *storedImage in self.recordArray) {
        NSURL *url = [self urlForImageUpload:storedImage];

        if (url == nil) {
            continue;
        }

        ImageUploadOperation *uploader = [[OJFImageUploadOperation alloc] init];
        uploader.image = storedImage.image;
        uploader.url = url;
        [self.recordQueue addOperation:uploader];
    }
}

当我将优化级别设置为“最快、最小”时,它似乎弄乱了这个函数的顺序。

当它进入时,我可以看到数组中有一个对象,它进入了循环。但随后它完全跳过了第一行 NSURL *url = [self urlForImageUpload:storedImage];并走到最后。所以上传永远不会真正开始,它会移动到下一个项目。

最佳答案

Release 配置默认使用与 Debug 配置不同的代码优化,因此可以优化和跳过一些代码行

您可以在以下位置检查/更改配置
目标 -> build设置 -> 搜索优化级别

关于ios - 调试和发布的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15761068/

相关文章:

ios - 如何在屏幕上为 UITabBar 设置动画并识别它通常所在的位置?

ios - CABasicAnimation 起源于右上角而不是中心

ios - 使用 linux 为 IOS 编译 TOR

iphone - slider 在时间段内自动递增

objective-c - 核心图尺度以适应绘图问题

java - 访问谷歌日历时出现空指针异常

c# - 如何在 Visual Studio 调试器中查看位图对象?

ios - 在 Xcode 项目中添加 Pods 或 CocoaPods 的最快方法

iOS:如何指定用于将主机名解析为 IP 地址的 DNS?

debugging - 在启用 Proguard 的情况下在 Android Studio 中运行调试器