iphone - 如何在 Objective C 中运行多个线程?

标签 iphone objective-c

我有一些在计时器中运行的代码,但我希望其中一些代码同时运行。

线程在 Objective C 中是如何运行的?

我可以将当​​前代码放在一个方法中,然后启动线程并在每个线程中调用该方法吗?

最佳答案

直接的答案是肯定的:使用NSThread 你可以这样做:

 [NSThread detachNewThreadSelector:@selector(myThreadMethod:) toTarget:self withObject:someOptions];

这将创建一个新线程并调用您在某个对象上定义的某些方法。一个常见的陷阱是,如果您不使用垃圾收集,则需要在线程中创建一个单独的 NSAutoreleasePool。在上面的例子中,它可能看起来像这样:

- (void)myThreadMethod:(id)options
{
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

    ... // your method contents here

    [pool release];
}

但是,正如其他人已经指出的那样,不应再使用线程。它们被 NSOperations、Blocks 和 GrandCentralDispatch 所取代。

关于iphone - 如何在 Objective C 中运行多个线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3430284/

相关文章:

iphone - NSMutableArray 删除重复项

iphone - ios 在后台处理推送通知

iphone - 设置 Wi-Fi 连接

iphone - ViewController 被释放导致崩溃

jquery 元素在 ios 上过渡和滚动后闪烁

ios - 核心数据多对多关系

objective-c - 属性也声明为实例变量?

ios - 如何处理这个 : There are five api requests running parallelly and 2nd request is dependent on 4th request's response

iphone - Facebook 登录错误 iOS 应用程序

objective-c - 使用 objective-c 从 json 中检索值