【发布时间】:2013-06-08 11:00:02
【问题描述】:
这是一个非常简单的例子。我无法解释为什么这些代码行会导致崩溃。我只想在 for 循环中创建多个线程。 在 AppDelegate 中:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
for (int i = 0; i < 5; i++) {
[self performSelectorInBackground:@selector(workInBackground)
withObject:nil];
}
return YES;
}
-(void)workInBackground{
}
应用程序仅偶尔崩溃(lldb 崩溃、iPhone Simulator 5.0 - 6.1、Xcode 版本 4.6.2)。我使用 ARC。
谁能解释这种行为?
更新
我“解决”了这个问题。当我在每次测试前执行清理时,不再发生崩溃。
【问题讨论】:
-
什么是崩溃日志和堆栈跟踪?
-
是的,堆栈跟踪会很有用...您是否考虑过使用 GCD 代替?
-
@Manu 是正确使用调度队列 - 在 GCD 上阅读。
-
我知道存在 GCD 或 Operation Queues 的可能性,并且它们是 Apple 推荐的。但我只是想了解手动线程的使用。
-
应用程序崩溃,没有任何崩溃日志或堆栈跟踪。
标签: ios multithreading crash