0

我一直在寻找互联网,但找不到完美的 iOS 线程教程,目前我正在使用 iOS 5,在网络上找到的教程很旧,我的应用程序需要从网络服务中获取数据,所以我想调用网络在线程中操作,我有一个选项卡,在每个选项卡中它从 Web 加载不同类型的数据,因为它开始获取数据,我不希望我的应用程序停留在该选项卡上,我希望该用户可以同时导航到其他选项卡获取该选项卡的数据。怎么可能

编辑:我想要一个流程:

 //in a thread
 fetchDataFromWeb(){//during this call activity indicator
 //fetch and make an array of ojbects     
 }

加载数据时触发填充功能

laoddata(){//remove activity indicator
//load tableview and other views
}

我怎么知道我的线程完成了它的进程

4

1 回答 1

1

看看NSOperationNSThreadGrand Central Dispatch

编辑:NSThread 示例

//on main thread on some action
 NSDictionary *myParameterDitionary = [..];
 [NSThread detachNewThreadSelector:@selector(aBackThreadMethod:) toTarget:self withObject:myParameterDitionary];

//this is on back thread called
- (void)aBackThreadMethod:(NSDictionary *)variablesDictionary{
    @autoreleasepool {
        //presess data
        NSDictionary *responseDictionary = [..];
        [self performSelectorOnMainThread:@selector(didABackThreadMethod:) withObject:responseDictionary waitUntilDone:YES];
    }
}

//call back on main thread
- (void)didFinishABackThreadMethod:(NSDictionary *)responseDictionary{
   //do stuff ex update views
}

@autoreleasepool 用于 ARC。如果您使用手动内存管理,您必须执行以下操作:

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
[pool release];
于 2012-09-21T05:48:49.007 回答