我有一个运行同步算法的应用程序。
当我在调试模式下构建并运行它(在我的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];
并走到尽头。所以上传永远不会真正开始,它会移动到下一个项目。
答案 0 :(得分:9)
默认情况下,发布配置使用与调试配置不同的代码优化,因此可以优化和跳过某些代码行
您可以在以下位置检查/更改配置 目标 - >构建设置 - >搜索优化级别