NSThread
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
#import "ViewController.h" @interface ViewController () { NSThread *thread1; NSThread *thread2; UIButton *btn; } @end @implementation ViewController - ( void )viewDidLoad { [ super viewDidLoad]; btn=[UIButton buttonWithType:UIButtonTypeCustom]; btn.frame=CGRectMake(30, 30, 50, 50); [btn setTitle:@ "按钮" forState:UIControlStateNormal]; btn.backgroundColor=[UIColor greenColor]; [ self .view addSubview:btn]; //线程创建 主要有两种方法 thread1=[[ NSThread alloc] initWithTarget: self selector: @selector (threadfun1) object: nil ]; [thread1 start]; //此方法创建需要手动启动 //此方法自动启动线程方法 [ NSThread detachNewThreadSelector: @selector (threadfun2) toTarget: self withObject: nil ]; } -( void )threadfun1 { NSLog (@ "thread1" ); //调用主线程更新 [ self performSelectorOnMainThread: @selector (upbutton) withObject: nil waitUntilDone: NO ]; } -( void )upbutton { [btn setTitle:@ "123" forState:UIControlStateNormal]; [ self performSelector: @selector (threadtothread) withObject: nil ]; } -( void )threadtothread { NSLog (@ "threadtothread" ); } -( void )threadfun2 { NSLog (@ "thread2" ); } - ( void )didReceiveMemoryWarning { [ super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end |