Segue NSTimer 和 Delayed perform

segue 、 NSTimer 和 Delayed perform 的自我学习


UIStoryboardSegue :NSObject

+ (instancetype)segueWithIdentifier:(nullableNSString *)identifier source:(UIViewController*)source destination:(UIViewController*)destination performHandler:(void(^)(void))performHandler;

- (instancetype)initWithIdentifier:(nullableNSString *)identifier source:(UIViewController*)source destination:(UIViewController*)destination ;
- (instancetype)init;

@property(nullable,nonatomic,copy,readonly)NSString *identifier;//标识符
@property(nonatomic,readonly)__kindof UIViewController *sourceViewController;//源控制器
@property(nonatomic,readonly)__kindof UIViewController *destinationViewController;//目的控制器

一个方法,三个属性


NSTimer : NSObject

+ (
NSTimer *)timerWithTimeInterval:( NSTimeInterval )ti invocation:( NSInvocation *)invocation repeats:( BOOL )yesOrNo;
+ (
NSTimer *)scheduledTimerWithTimeInterval:( NSTimeInterval )ti invocation:( NSInvocation *)invocation repeats:( BOOL )yesOrNo;

+ (
NSTimer *)timerWithTimeInterval:( NSTimeInterval )ti target:( id )aTarget selector:( SEL )aSelector userInfo:( nullable id )userInfo repeats:( BOOL )yesOrNo;
+ (
NSTimer*)scheduledTimerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(nullableid)userInfo repeats:(BOOL )yesOrNo;

- (instancetype)initWithFireDate:(NSDate*)date interval:(NSTimeInterval)ti target:(id)t selector:(SEL)s userInfo:(nullableid)ui repeats:(BOOL)rep;

- (void)fire; 定时器开始
- (void)invalidate;  定时器 结束
@property(copy)NSDate *fireDate;
@property (readonly)NSTimeInterval timeInterval;

@property NSTimeIntervaltolerance;


@property(readonly,getter=isValid)BOOL valid;

@property(nullable,readonly,retain)id userInfo;

scheduledTimerWithTimeInterval:(NSTimeInterval)seconds  

预订一个Timer,设置一个时间间隔。

表示输入一个时间间隔对象,以秒为单位,一个>0的浮点类型的值,如果该值<0,系统会默认为0.1

 target:(id)aTarget

表示发送的对象,如self

 selector:(SEL)aSelector

方法选择器,在时间间隔内,选择调用一个实例方法

userInfo:(id)userInfo

此参数可以为nil,当定时器失效时,由你指定的对象保留和释放该定时器。

repeats:(BOOL)yesOrNo

YES时,定时器会不断循环直至失效或被释放,当NO时,定时器会循环发送一次就失效。

invocation:(NSInvocation *)invocation




sche

#不用scheduled方式初始化的,需要手动addTimer:forMode: 将timer添加到一个runloop中。

  而scheduled的初始化方法将以默认mode直接添加到当前的runloop中.



Delayed perform 延迟执行
NSObject (NSDelayedPerforming)
- (void)performSelector:(SEL)aSelector withObject:(nullableid)anArgument afterDelay:(NSTimeInterval)delay inModes:(NSArray<NSString*> *)modes;
- (
void)performSelector:(SEL)aSelector withObject:(nullableid)anArgument afterDelay:(NSTimeInterval)delay;  最常用
+ (
void)cancelPreviousPerformRequestsWithTarget:(id)aTarget selector:(SEL)aSelector object:(nullableid)anArgument;
+ (void)cancelPreviousPerformRequestsWithTarget:(id)aTarget;

NSRunLoop (NSOrderedPerform)
- (void)performSelector:(SEL)aSelector target:(id)target argument:(nullableid)arg order:(NSUInteger)order modes:(NSArray<NSString*> *)modes;
- (
void)cancelPerformSelector:(SEL)aSelector target:(id)target argument:(nullableid)arg;
- (void)cancelPerformSelectorsWithTarget:(id)target;

提示框的弹出和自动取消
if([name isEqualToString:@""] || [phoneNum isEqualToString:@""] ) {
       
UIAlertController *alert = [UIAlertControlleralertControllerWithTitle:@"提示"message:@"姓名或手机号为空"preferredStyle:UIAlertControllerStyleAlert];
        [
selfpresentViewController:alertanimated:YEScompletion:nil];
        [selfperformSelector:@selector(dismissViewControllerAnimated:completion:)withObject:nilafterDelay:2.0];




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值