runloop的基本使用
来源:互联网 发布:java jvm原理 一句话 编辑:程序博客网 时间:2024/06/06 20:56
#import "ViewController.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutletUIImageView *imageView;
@property (nonatomic,strong) NSThread *thread;
@end
@implementation ViewController
- (IBAction)oneBtnClick:(id)sender {
self.thread = [[NSThreadalloc]initWithTarget:selfselector:@selector(operation1)object:nil];
[self.threadstart];
}
- (IBAction)twoBtnClick:(id)sender {
[selfperformSelector:@selector(operation2)onThread:self.threadwithObject:nilwaitUntilDone:YES];
}
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
//Runloop的自动释放池子
/*
第一次创建:启动的时候
最后一次销毁:退出
其他:
当runloop即将进入休眠状态的时候会销毁,重新创建一个空的自动释放池
*/
NSLog(@"---start0----");
/*
//添加在runloop的默认运行模式下面的
[self.imageView performSelector:@selector(setImage:) withObject:[UIImage imageNamed:@"Snip20151127_133"] afterDelay:2.0 inModes:@[NSDefaultRunLoopMode,UITrackingRunLoopMode]];
*/
}
-(void)operation1
{
// while (1) {
NSLog(@"op1---%@",[NSThreadcurrentThread]);
// }
//开启runloop
//创建子线程对应的runloop
NSRunLoop *runloop = [NSRunLoopcurrentRunLoop];
// [runloop addPort:[NSMachPort port] forMode:NSDefaultRunLoopMode];
NSTimer *timer = [NSTimertimerWithTimeInterval:2.0target:selfselector:@selector(test)userInfo:nilrepeats:YES];
[runloop addTimer:timer forMode:NSDefaultRunLoopMode];
//默认是没有开启的,需要手动开启
[runloop run];
//runloop要运行起来,mode里面至少要有一个source或者是timer
NSLog(@"---end----");
}
-(void)operation2
{
NSLog(@"op2---%@",[NSThreadcurrentThread]);
}
-(void)test
{
NSLog(@"---test---");
}
@end
- runloop的基本使用
- Runloop的使用
- runloop的使用
- Runloop的使用
- RunLoop的一些简单使用
- Runloop的最简单使用
- runtime和RunLoop的使用
- RunLoop使用
- runloop使用
- RunLoop使用
- RunLoop源码分析、基本使用场景和常见问题
- 使用runloop阻塞线程的正确写法
- 使用runloop阻塞线程的正确写法
- 使用runloop阻塞线程的正确写法
- iOS runloop与定时器的使用
- 使用Objective-C实现自定义的RunLoop
- iOS 多线程编程<十六、RunLoop的基本应用>
- 什么时候使用runloop?
- GCD中的定时器
- Java8种基本数据类型的封装,Cache
- Android中View not attached to window manager错误的解决办法
- runloopObserver
- IOS--设置圆角Button
- runloop的基本使用
- SQL学习笔记(2)之DDL语句
- android annotation快速简单入门
- phpstorm9安装
- hdu 2063
- 快速傅里叶变换算法探幽
- UI--手势方法介绍
- JAVA垃圾回收与GC浅谈
- C++构造函数初始化列表 委托构造函数