UIView的是缓慢从上海华删除

我添加一个UIView,同时一些线程后台更新正在发生的窗口,然后使用一个委托方法来删除该视图。 一切都正在发生如预期,但视图保持几秒钟hideActivityViewer被调用后。 不知道它的问题,但应用程序使用的UITabBarController。

更新方法是在一个单独的类,但目前在AppDelegate.m进行调试。 正如我所说的,一切正常。 当更新完成,写入“富”的日志,但视图持续数秒。 任何帮助,将不胜感激。 多余的代码已经被省略:

AppDelegate.h

@interface AppDelegate : NSObject <UIApplicationDelegate, UITabBarControllerDelegate> { UIWindow *window; UITabBarController *tabBarController; UIView *activityView; id _delegate; } @property (nonatomic, retain) IBOutlet UIWindow *window; @property (nonatomic, retain) UITabBarController *tabBarController; - (void)showActivityViewer; - (void)updateComplete; - (void)updateRemoteDataThreadedWithDelegate:(id)aDelegate; - (id)delegate; - (void)setDelegate:(id)new_delegate; @end

AppDelegate.m

- (void)updateRemoteDataThreadedWithDelegate:(id)aDelegate { [self setDelegate:aDelegate]; NSOperationQueue *queue = [NSOperationQueue new]; NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(updateRemoteDataWithDelegate:) object:aDelegate]; [queue addOperation:operation]; [operation release]; } - (void)updateRemoteDataWithDelegate:(id)aDelegate { [self setDelegate:aDelegate]; ...do stuff... if ([_delegate respondsToSelector:@selector(updateComplete)]) { [_delegate updateComplete]; } else { [NSException raise:NSInternalInconsistencyException format:@"Delegate doesn't respond to updateComplete"]; } } -(void)showActivityViewer { [activityView release]; activityView = [[UIView alloc] initWithFrame: CGRectMake(window.bounds.size.width-50, 60, 50, 50)]; ...formatting... [window addSubview: activityView]; [activityView release]; } -(void)hideActivityViewer { [activityView removeFromSuperview]; activityView = nil; NSLog(@"Foo"); } - (id)delegate { return _delegate; } - (void)setDelegate:(id)new_delegate { _delegate = new_delegate; }

--------------解决方案-------------

它看起来像你对我是造成一个线程调用哪个做的东西,在一个UIView的委托方法 - 你不能这样做,因为这是的UIView不是线程安全的。

使用performSelectorOnMainThread安全地做到这一点 - 你的委托方法可以调用主线程上的另一种方法这种方式。

UI操作应在主线程中进行; 你的榜样推到UIView的一个单独的线程,这是不推荐使用。

分类:iphone 时间:2013-08-25 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.744 (s). 10 q(s)