如何制作一个小的透明模态来表示加载数据?

时间:2011-09-29 16:51:22

标签: objective-c ios cocoa-touch

我确信之前已经问过,但我找不到运气。在我的应用程序数据中同步加载,这会锁定应用程序。我尝试过asynch加载,但这不适用于JSON解析器。

为了表示应用程序没有被冻结,只是处理下载数据,我希望向用户提供带有加载图标的小透明覆盖图。我想知道如何解决这个问题 - 我需要把它放在另一个线程上吗?

为了澄清,我想做一些与Netflix iPad应用程序非常相似的东西 - 它们的加载叠加层非常适合我正在进行的项目。

编辑:我在

下面添加了一些异步代码

我首先调用此函数:

NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSURLConnection *c = [[NSURLConnection alloc] init];
[self connectionWorks:c didReceiveData:data];

connectionworks

-(void)connectionWorks:(NSURLConnection *)connection didReceiveData:(NSData *)data{
  OLWork *newWork;

  NSString *jsonString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];

  NSDictionary *results = [jsonString JSONValue];

  NSArray *rawBooks = [results objectForKey:@"works"];

  for (NSDictionary *work in rawBooks) {

    newWork = [[OLWork alloc] init];
    newWork.title = [work objectForKey:@"title"];
    newWork.author = [[[work objectForKey:@"authors"] objectAtIndex:0] objectForKey:@"name"];
    newWork.key = [work objectForKey:@"key"];

    [self.works setValue:newWork forKey:newWork.title];

  }
}

1 个答案:

答案 0 :(得分:1)

这将为您完成工作,它有详细记录且易于使用

https://github.com/jdg/MBProgressHUD

您正在使用哪种JSON解析器?使异步请求工作将是一个更好的解决方案。