创建一个简单的类:TestObj.
TestObj.h
#import <Foundation/Foundation.h>
@interface TestObject : NSObject
- (void)timerAction:(NSTimer *)timer;
@end
TestObj.m
#import "TestObject.h"
@implementation TestObject
- (id)init{
self = [super init];
if (self) {
NSLog(@"instance init with %p",self);
}
return self;
}
- (void)timerAction:(NSTimer *)timer{
NSLog(@"timer action with instrance %p",self);
}
@end
在主控制器里引用:
#import "ViewController.h"
#import "TestObject.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//创建一个线程
[NSThread detachNewThreadSelector:@selector(newThreadAction) toTarget:self withObject:nil];
}
- (void)newThreadAction{
TestObject *obj = [[TestObject alloc] init];
NSTimer *timer = [NSTimer timerWithTimeInterval:1 target:obj selector:@selector(timerAction:) userInfo:nil repeats:YES];
//多线程情况下加上这句才会执行timer里面的方法,此时该线程的runloop才能执行
[[NSRunLoop currentRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];
//美妙执行1此,工执行6次
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:6]];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end