1

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

当我在调试模式下构建并运行它(在我的 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];并走到最后。所以上传永远不会真正开始,它会移动到下一个项目。

4

1 回答 1

9

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

您可以在 Target -> Build Settings -> search for Optimization Level 检查/更改配置

于 2013-04-02T10:09:12.467 回答