我有一个运行同步算法的应用程序。
当我在 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/