【问题标题】:addSubview: method horribly slowaddSubview:方法非常慢
【发布时间】:2011-06-27 13:04:36
【问题描述】:

我正在尝试从另一个初始化 ViewController。下面是我第一篇ViewController写的代码:

MediasViewController.h

#import "MediasVideosViewController.h"

@interface MediasViewController : UIViewController <UIWebViewDelegate>
{
    NSArray*                    videosList; 
    MediasVideosViewController  *mediasVideosViewController;
}

@property (nonatomic, retain) NSArray*  videosList;
@property (nonatomic, retain) MediasVideosViewController*   mediasVideosViewController;


MediasViewController.m:

if (self.mediasVideosViewController == nil)
{
    MediasVideosViewController* mediasVideos = [[MediasVideosViewController alloc] initWithNibName:@"MediasVideosView" bundle:nil];
    self.mediasVideosViewController = mediasVideos;
    self.mediasVideosViewController.videosList = self.videosList;
    [mediasVideos release];
}

NSDate *start = [NSDate date];
[mediasVideosViewController.view addSubview:nil];
NSLog(@"adding nil to mediasVideosViewController.view took %f seconds", [[NSDate date] timeIntervalSinceDate:start]);


控制台结果:

将 nil 添加到 mediasVideosViewController.view 拿走了 4.261444 秒

真的吗?超过 4s 将 nil 添加到 mediasVideosController ?它在 1s 和 5s 之间波动。

但如果我删除这一行:

self.mediasVideosViewController.videosList = self.videosList;

从 MediasViewController.m 中,我得到了更短的加载时间,例如:

将 nil 添加到 mediasVideosViewController.view 拿走了 0.007613 秒

这让我发疯......

有人有解决办法吗?

【问题讨论】:

    标签: objective-c iphone addsubview


    【解决方案1】:

    当你调用 mediasVideosViewController.view 时,你基本上是第一次调用 loadView。您不只是添加子视图,而是使用该调用创建整个视图。

    大概,当您设置视频列表时,您的 loadView 方法需要做更多的工作。这将导致您看到的行为。

    简而言之,请查看您的 loadView 方法以获取线索。

    编辑:我注意到您正在从 NIB 文件加载视图控制器,在这种情况下您想检查 viewDidLoad。

    【讨论】:

    • 我刚刚注意到您正在从 nib 文件创建此视图控制器,在这种情况下检查 viewDidLoad。
    • 您能否编辑您的答案以反映 NIB 文件加载,以便我们投票?谢谢。
    • 我在 mediasVideosViewController 中下载了太多图像。我的 viewDidLoad 太重而无法加载。谢谢 !是的,编辑你的答案会很好;)
    猜你喜欢
    • 2012-03-19
    • 1970-01-01
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-22
    • 1970-01-01
    • 2017-07-28
    相关资源
    最近更新 更多