基於dispatch_after封裝yxtimer
本人根據dispatch_after封裝了乙個定時器,支援block以及**的方式來啟用定時器,適用於對精度要求低,耗時短的地方,高階大氣上檔次,低調奢華有內涵:)
原始碼:yxtimer.h 與 yxtimer.m
////yxtimer
////
created by youxianming on 14-10-2.
////
#import
@class
yxtimer;
@protocol yxtimerdelegete - (void)yxtimerevent:(yxtimer *)timer;
@end
@inte***ce
yxtimer : nsobject
//**相關方法
@property (nonatomic) nstimeinterval millisecond; //
毫秒@property (nonatomic, assign) id
delegate;//
block相關方法
+(instancetype)timerwithmillisecondinterval:(nstimeinterval)millisecond
block:(
void (^)(yxtimer *timer))block;
//啟用定時器 + 停止定時器
- (void
)start;
- (void)stop; //
注意:要想讓timer能被移除,一定要啟用stop方法才行
@end
//使用原始碼://yxtimer
////
created by youxianming on 14-10-2.
////
#ifdef
debug
#define yxtimer_dlog(fmt, ...) nslog((@"yxtimer.m:%s:%d" fmt), __pretty_function__, __line__, ##__va_args__);
#else
#define yxtimer_dlog(...)
#endif
#import
"yxtimer.h
"@inte***ce
yxtimer ()
@property (nonatomic) bool isrunning;
@property (nonatomic, copy)
void (^block)(yxtimer *timer);
@end
@implementation
yxtimer
-(instancetype)init
return
self;
}- (instancetype)initwithblock:(void (^)(yxtimer *timer))block
return
self;
}- (void
)start
- (void
)stop
+(instancetype)timerwithmillisecondinterval:(nstimeinterval)millisecond
block:(
void (^)(yxtimer *timer))block
- (void
)runtimer
dispatch_after(dispatch_time(dispatch_time_now, (int64_t)(millisecond * nsec_per_msec)), dispatch_get_main_queue(), ^
if(_delegate)
[self runtimer];
});}
}- (void
)dealloc
@end
//需要注意的地方://yxtimer
////
created by youxianming on 14-10-2.
////
#import
"viewcontroller.h
"#import
"yxtimer.h
"@inte***ce viewcontroller ()@property (nonatomic, strong) yxtimer *timer;
@property (nonatomic, strong) uilabel *label;
@property (nonatomic, strong) nsarray *dataarray;
@property (nonatomic) nsinteger count;
@end
@implementation
viewcontroller
- (void
)viewdidload
- (void)yxtimerevent:(yxtimer *)timer
@end
AspectJ基於xml和基於註解
一 基於xml 執行的切入點中具體方法有返回值,則方法結束會立即執行後置通知,然後再執行環繞通知的放行之後的 2 連線點即所有可能的方法,切入點是正真被切的方法,連線點方法名 其中,只有環繞通知的切入點引數不一樣,是可以放行的切入點 3 異常通知是處理異常 切面類中的異常通知的方法引數列表中異常引數...
拓撲排序(基於dfs 基於佇列)
dfs函式的返回值表示是否成環,若存在有向環,則不存在拓撲排序。不包含有向環的有向圖稱為有向無環圖 dag 可以借助dfs完成拓撲排序,在訪問完乙個結點時把他加入當前拓撲序的首部。舉個栗子 比如乙個 1,2 1,3 2,3 的有向無環圖,就先搜尋1,再遞迴搜尋2,再搜尋3,3沒有出度了,於是放進拓撲...
基於insert update delete的注入
inset注入原理 所謂inset注入就是指我們前端註冊的資訊會被後台通過insert操作插入到資料庫裡邊去,若此時後台沒有做出相應的處理就會構成insert注入。insert注入方法 insert用法例如 insert into member username,pw,phonenum,email,...