显示UIViewController,NSOperationQueue

时间:2012-06-23 00:54:33

标签: objective-c xcode performance nsoperation

我一直在iOS 5应用程序中,我有一个NSOperationQueue,它可以很好地获取一些数据并创建一个UIViewController。但是,在某个时刻,当每个操作似乎都完成时,应用程序在很长一段时间内都没有响应。这是怎么回事:

  1. 从DB
  2. 获取一些数据
  3. 队列 - 为每个项初始化一个自定义的UIViewController对象。
  4. 将每个UIViewController对象移交给MainViewController并显示它们。
  5. 一切顺利,直到必须出现UIVC对象。 它超越了所有[[self view] addSubview:object.view];并到功能的结尾。 但是,在UIVC对象的viewDidApear中的NSLog语句出现之前的5到30秒之后会出现一个巨大的延迟...

    所以在代码中:

    //MainViewController
    -(void)displayNewView {
      [[self view] addSubview:object.view];
      NSLog(@"Done setup");
    }
    
    //-- Long unresponsiveness --//
    
    //UIVC object
    -(void)viewDidAppear:(BOOL)animated {
      NSLog(@"Start appear");
      [super viewDidAppear:animated];
    }
    

    可能导致这种情况的原因是什么?我错过了一些明显的东西吗?

    感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

似乎每个UIViewController的复杂性都延迟了整个过程。

对我来说,它们看起来很简单,但我猜iPhone不喜欢一次使用几个按钮,标签和图像创建10个视图。 简化笔尖并确保仅分配和初始化所使用的内容有很大帮助..但它仍然不是完全流畅的。