中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
淺談iOS開發(fā)中方法延遲執(zhí)行的幾種方式

Method1. performSelector方法

Method2. NSTimer定時(shí)器

Method3. NSThread線程的sleep

Method4. GCD


公用延遲執(zhí)行方法

- (void)delayMethod{ NSLog(@"delayMethodEnd");}


Method1:performSelector

[self performSelector:@selector(delayMethod) withObject:nil/*可傳任意類型參數(shù)*/ afterDelay:2.0];
注:此方法是一種非阻塞的執(zhí)行方式,未找到取消執(zhí)行的方法。

程序運(yùn)行結(jié)束
2015-08-31 10:56:59.361 CJDelayMethod[1080:39604] delayMethodStart2015-08-31 10:56:59.363 CJDelayMethod[1080:39604] nextMethod2015-08-31 10:57:01.364 CJDelayMethod[1080:39604] delayMethodEnd

Method2:NSTimer定時(shí)器

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(delayMethod) userInfo:nil repeats:NO];
注:此方法是一種非阻塞的執(zhí)行方式,
取消執(zhí)行方法:- (void)invalidate;即可

程序運(yùn)行結(jié)束
2015-08-31 10:58:10.182 CJDelayMethod[1129:41106] delayMethodStart2015-08-31 10:58:10.183 CJDelayMethod[1129:41106] nextMethod2015-08-31 10:58:12.185 CJDelayMethod[1129:41106] delayMethodEnd

Method3:NSThread線程的sleep

[NSThread sleepForTimeInterval:2.0];
注:此方法是一種阻塞執(zhí)行方式,建議放在子線程中執(zhí)行,否則會(huì)卡住界面。但有時(shí)還是需要阻塞執(zhí)行,如進(jìn)入歡迎界面需要沉睡3秒才進(jìn)入主界面時(shí)。
沒有找到取消執(zhí)行方式。

程序運(yùn)行結(jié)束
2015-08-31 10:58:41.501 CJDelayMethod[1153:41698] delayMethodStart2015-08-31 10:58:43.507 CJDelayMethod[1153:41698] nextMethod

Method4:GCD

__block ViewController/*主控制器*/ *weakSelf = self;

dispatch_time_t delayTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0/*延遲執(zhí)行時(shí)間*/ * NSEC_PER_SEC));dispatch_after(delayTime, dispatch_get_main_queue(), ^{    [weakSelf delayMethod];});`

注:此方法可以在參數(shù)中選擇執(zhí)行的線程,是一種非阻塞執(zhí)行方式。沒有找到取消執(zhí)行方式。

程序運(yùn)行結(jié)束
2015-08-31 10:59:21.652 CJDelayMethod[1181:42438] delayMethodStart2015-08-31 10:59:21.653 CJDelayMethod[1181:42438] nextMethod2015-08-31 10:59:23.653 CJDelayMethod[1181:42438] delayMethodEnd

完整代碼參見:

//
// ViewController.m
// CJDelayMethod
//
// Created by 陳杰 on 8/31/15.
// Copyright (c) 2015 chenjie. All rights reserved.
//

import "ViewController.h"

@interface ViewController ()
@property (nonatomic, strong) NSTimer timer;
@end
@implementation ViewController
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. NSLog(@"delayMethodStart"); [self methodOnePerformSelector];// [self methodTwoNSTimer];// [self methodThreeSleep];// [self methodFourGCD]; NSLog(@"nextMethod");}
- (void)methodFiveAnimation{ [UIView animateWithDuration:0 delay:2.0 options:UIViewAnimationOptionAllowUserInteraction animations:^{ } completion:^(BOOL finished) { [self delayMethod]; }];}
- (void)methodFourGCD{ __block ViewController
weakSelf = self; dispatch_time_t delayTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)); dispatch_after(delayTime, dispatch_get_main_queue(), ^{ [weakSelf delayMethod]; });}
- (void)methodThreeSleep{ [NSThread sleepForTimeInterval:2.0];}
- (void)methodTwoNSTimer{ NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(delayMethod) userInfo:nil repeats:NO];}
- (void)methodOnePerformSelector{ [self performSelector:@selector(delayMethod) withObject:nil/*可傳任意類型參數(shù)*/ afterDelay:2.0];}
- (void)delayMethod{ NSLog(@"delayMethodEnd");}
- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}@end


歡迎關(guān)注笨笨編程官方微博賬號(hào)

[http://weibo.com/2728581591/profile?topnav=1&wvr=6]

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
IOS中延時(shí)執(zhí)行的幾種方式的比較和匯總
【IOS基礎(chǔ)知識(shí)】NSTimer定時(shí)器使用
關(guān)于OC中的幾種延遲執(zhí)行方式
NSTimer直接使用需要在主線程中使用
IOS 多線程的一些總結(jié)
IOS多線程編程步驟詳解
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服