Uitableview 从服务器加载数据表视图会挂起它

Uitableview 从服务器加载数据表视图会挂起它,uitableview,Uitableview,我使用下面的代码用数据填充表视图,它也是被填充的,但问题是,在滚动表视图时,它会挂起,经过一段时间后,它会被滚动一小段距离。 .h文件是 #import <UIKit/UIKit.h> #import "JSON.h" @interface HomeViewController : UIViewController <UITabBarControllerDelegate,UINavigationControllerDelegate,UIActionSheetDelegate,U

我使用下面的代码用数据填充表视图,它也是被填充的,但问题是,在滚动表视图时,它会挂起,经过一段时间后,它会被滚动一小段距离。 .h文件是

#import <UIKit/UIKit.h>
#import "JSON.h"
@interface HomeViewController : UIViewController <UITabBarControllerDelegate,UINavigationControllerDelegate,UIActionSheetDelegate,UIImagePickerControllerDelegate>

@property (strong, nonatomic) IBOutlet UINavigationBar *navigationBar;
@property (strong,nonatomic) IBOutlet UITableView *homeProfileTableview;
@property (nonatomic ,retain) UIImageView *clockImage;
@property (nonatomic,strong) UIImageView *ItemImage;
@property (nonatomic,strong) UIImageView *locationImage;
@property (nonatomic, retain) NSArray *Tableata;

@end

您的代码中充满了同步请求。例如:

 NSString *jsonString = [NSString
                            stringWithContentsOfURL:[NSURL URLWithString:@"http://izisstechnology.com/garage/index.php?method=home&start=0"]
                            encoding:NSStringEncodingConversionAllowLossy
                            error:nil];

当您执行同步请求时,整个UI都会被阻塞,因为请求是在主线程上执行的。基本上,UIKit的大部分工作都是在主线程上完成的,例如处理触摸、绘制UI等。因此,在下载所有数据之前,触摸都不会得到处理。因此,您的应用程序会出现问题

我最近观看了WWDC 2012的一个会议,名为“在iOS上构建并发用户界面”。这很有趣,也很有帮助。基调中的插图便于理解材料。无论如何,在这个主题上有大量的资源,你只需要谷歌“异步iOS”,你会发现非常有用的教程等

 NSString *jsonString = [NSString
                            stringWithContentsOfURL:[NSURL URLWithString:@"http://izisstechnology.com/garage/index.php?method=home&start=0"]
                            encoding:NSStringEncodingConversionAllowLossy
                            error:nil];
NSData *data = [[NSData alloc] initWithContentsOfURL:url];
    UIImage *image = [[UIImage alloc] initWithData:data];