Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何改进IOS中的循环_Ios_Objective C - Fatal编程技术网

如何改进IOS中的循环

如何改进IOS中的循环,ios,objective-c,Ios,Objective C,我必须为我的公司创建一个代码,它从网络上读取70个文件,并从文件中读取大量数据。但在模拟器中,执行需要10分钟。我相信这一次是非常高的。所以,我问你们,有经验的人,你们是否看到了一种改进代码并让它更快的方法。下面是我的代码的草图。多谢各位 for (int i=0; i<stockList.count;i++){ stringToURL = [NSString [NSString stringWithFormat: @"http://www.mycompany.co

我必须为我的公司创建一个代码,它从网络上读取70个文件,并从文件中读取大量数据。但在模拟器中,执行需要10分钟。我相信这一次是非常高的。所以,我问你们,有经验的人,你们是否看到了一种改进代码并让它更快的方法。下面是我的代码的草图。多谢各位

for (int i=0; i<stockList.count;i++){
            stringToURL = [NSString [NSString stringWithFormat: @"http://www.mycompany.com/File%d",i]];
            url = [NSURL URLWithString:stringToURL];
            NSError *error = nil;
            content = [[NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error] componentsSeparatedByString:@"\n"];
            sum1 = 0.00;
            sum2 = 0.00;
            for (j=1; j<=90; j++) {
                sum1 = sum1 + [[[content objectAtIndex:30*j+10] stringByReplacingOccurrencesOfString:@"," withString:@"."] floatValue];
            }
            for (j=1; j<=200; j++) {
                sum2 = sum2 + [[[content objectAtIndex:33*j+10] stringByReplacingOccurrencesOfString:@"," withString:@"."] floatValue];
            }
            if ((sum2+sum1)/2 > target) [saveFile addObject:[NSString initWithformat:@"File%d,i]];
            NSLog(@"%d",i);
        }

for(int i=0;i无论你做什么,代码都会非常慢,但是由于重复的解析和字符串替换,特定的代码会非常慢。我敢打赌,由于自动释放流量,你可能也会看到内存使用量的峰值。这就是抓取文本并试图将其作为数据处理的本质

至少,数据应该以机器可读的形式发布。可能是JSON编码的数据还是PLIST


理想情况下,给定数据量,将有一个web服务器,它将提供一个HTTP API,您的应用程序可以连接到该API并获取数据。更好的是,该API可以提供“从头开始的批量加载”和“给我XXXX以来的任何增量”键入允许您初始化新应用程序和启用应用程序缓存数据的终结点,仅对更改的数据应用更新。

通过探查器运行代码,查看实际问题所在。当然,70次同步Internet文件传输将是绝大多数问题。难道您没有办法您的处理以前是在服务器上执行的,而不是在iPhone上执行的?谢谢。所有信息都将有助于审查公司的战略。@George这是一个相当高级别的评估。不了解更多信息,很难深入了解。但听起来您确实需要一个客户机/服务器体系结构。注意至少,如果您有多个客户机,并且需要实际协调/合并来自它们的更改,那么您肯定需要一个能够完成繁重工作的服务器(或者一些最前沿的东西)。