| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- //
- // KSYGPUViewCapture.h
- // KSYStreamer
- //
- // Created by yiqian on 1/30/16.
- // Copyright © 2016 yiqian. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- NS_ASSUME_NONNULL_BEGIN
- /**
- A proxy used to hold a weak object.
- It can be used to avoid retain cycles, such as the target in NSTimer or CADisplayLink.
-
- sample code:
-
- @implementation ViewController {
- NSTimer *_timer;
- }
-
- - (void)initTimer {
- KSYWeakProxy *proxy = [KSYWeakProxy proxyWithTarget:self];
- _timer = [NSTimer timerWithTimeInterval:0.1 target:proxy selector:@selector(tick:) userInfo:nil repeats:YES];
- }
-
- - (void)tick:(NSTimer *)timer {...}
- @end
- */
- @interface KSYWeakProxy : NSProxy
- /**
- The proxy target.
- */
- @property (nullable, nonatomic, weak, readonly) id target;
- /**
- Creates a new weak proxy for target.
-
- @param target Target object.
-
- @return A new proxy object.
- */
- - (instancetype)initWithTarget:(id)target;
- /**
- Creates a new weak proxy for target.
-
- @param target Target object.
-
- @return A new proxy object.
- */
- + (instancetype)proxyWithTarget:(id)target;
- @end
- NS_ASSUME_NONNULL_END
|