本文转载至http://www.mgenware.com/blog/?p=4631. 对当前Run Loop中Selector Sources的取消NSObject中的performSelector:withObject:afterDelay:方法将会在当前线程的Run Loop中根据afterDe...
分类:
移动开发 时间:
2015-05-12 20:44:55
阅读次数:
164
performSelector关于内存管理的执行原理是这样的执行?[self?performSelector:@selector(method1:)?withObject:self.tableLayer?afterDelay:3];?的时候,系统会将tableLayer的引用计数加1,执行完这个方法时,...
分类:
其他好文 时间:
2015-05-07 17:12:20
阅读次数:
160
大家都知道oc是动态语言,是runtime的,怎么体现他的动态性呢,今天用SEL来分析下,之前分享过钩子其实就可以看出来了,现在具体看看OC是怎么通过SEL找到函数的。 [self?performSelector:@selector(abcd)];
[se...
分类:
移动开发 时间:
2015-05-06 19:49:39
阅读次数:
250
Cocoa为iOS线程间通信提供2种方式,1种是performSelector,另1种是Port。 先说第1种,performSelector,有以下几种: 第2种为NSMachPort方式。NSPort有3个子类,NSSocketPort、NSMessagePort、NSMachPort,...
分类:
移动开发 时间:
2015-05-03 20:25:39
阅读次数:
182
创建线程的方法
NSThread
NSOperationQueue和NSOperation
GCD
主线程中执行代码
[self performSelectorOnMainThread: withObject: waitUntilDone:];
[self performSelector: onThread:[NSThread mainThread] withO...
分类:
编程语言 时间:
2015-04-30 01:05:57
阅读次数:
141
UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];UIView *firstResponder = [keyWindow performSelector:@selector(firstResponder)];[fi...
分类:
移动开发 时间:
2015-04-28 11:10:56
阅读次数:
172
1. [NSTreadsleepForTimeInterval:0.8f] 这个方法 实际效果 好比打断点 等你再恢复断点执行2.[self performSelector:@selector(fun:) withObject:nil afterDelay:0.8f];这个 就适合UI层级的 异步方...
分类:
移动开发 时间:
2015-04-24 20:46:51
阅读次数:
131
if ([[AVAudioSession sharedInstance] respondsToSelector:@selector(requestRecordPermission:)]) { [[AVAudioSession sharedInstance] performSelector:@s...
分类:
其他好文 时间:
2015-04-20 13:07:04
阅读次数:
185
方法一 dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
//写要发生的代码;2秒以后发生
});方法二 [self performSelector: withObject: af...
分类:
移动开发 时间:
2015-04-13 20:51:42
阅读次数:
153
IOS中有一个类型是SEL,它的作用很相似与函数指针,通过performSelector:withObject:函数可以直接调用这个消息。但是perform相关的这些函数,有一个局限性,其参数数量不能超过2个,否则要做很麻烦的处理,与之相...
分类:
移动开发 时间:
2015-04-10 15:45:02
阅读次数:
198