為什麼[NSThread exit]會報錯:Thread 3 signal SIGABRT? 有完整 救命代碼

tags:    時間:2013-12-03 18:40:53
 #import "AppDelegate.h"
 
 @implementation AppDelegate
 
 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
 {
     self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
     // Override point for customization after application launch.
     self.window.backgroundColor = [UIColor whiteColor];
     [self.window makeKeyAndVisible];
     
     //創建一個線程隊列
     NSOperationQueue *theradQueue=[[NSOperationQueue alloc] init];
     //設置最大同時多少線程
     [theradQueue setMaxConcurrentOperationCount:1];
     //添加線程操作對像
     NSInvocationOperation *op =[[NSInvocationOperation alloc] initWithTarget:self selector:@selector(mutableThread:) object:@"test"];
     //設置純種優先順序別
     op.queuePriority=NSOperationQueuePriorityHigh;
     [theradQueue addOperation:op];
     
     for(int i=0; i<=100; i++)
     {NSLog(@"主線程 %d",i);
     }
     
     return YES;
 }
 
 -(void )mutableThread:(NSString *)t
 {
     //    NSLog(@"mutableThread %@",t);
     for(int i=0; i<=100; i++)
     {
         NSLog(@"子線程 %d",i);
     }
     
     //跳到主線程進行執行 waitUntilDone 英 [ənˈtɪl] 美 [ʌnˈtɪl]  prep.到…為止; 在…以前    conj.到…為止,在…以前; 直到…才 是否要等待方法執行完成後再繼續執行
     [self performSelectorOnMainThread:@selector(mutableThreadCompleter:) withObject:@"OK" waitUntilDone:YES];
     //暫停1秒
     [NSThread sleepForTimeInterval:1];
     NSLog(@"子線程 完成");
     //退出線程
     [NSThread exit];       //? 這裡報錯:Thread 3 signal SIGABRT
 }
 
 -(void) mutableThreadCompleter:(NSString *)t
 {
     BOOL isMain =[NSThread isMainThread];
     NSLog(@"線程完成 %@ 主線程%@",t,isMain?@"YES":@"NO");
 }
 
 @end
 


為什麼[NSThread exit]會報錯:Thread 3 signal SIGABRT? 有完整 救命代碼

謝謝
------解決方案--------------------
換成return試下?
我的是C++ 用pthread_exit也是受到SIGABRT
http://bbs.csdn.net/topics/390656401
------解決方案--------------------
基本概念都不清楚!回去看看書吧。
------解決方案--------------------
NSOperationQueue里的操作在完成後會自動標記自身狀態為完成後退出線程隊列的,不需要你手動去強制退出。而且操作一旦開始也不能強制退出。再而且,NSThread跟操作不屬於一類多線程概念= =

推薦閱讀文章

Bookmark the permalink ,來源:互聯網