单军华
2018-07-11 7b02207537d35bfa1714bf8beafc921f717d100a
screendisplay/Pods/YYText/YYText/Utility/YYTextWeakProxy.h
New file
@@ -0,0 +1,61 @@
//
//  YYTextWeakProxy.h
//  YYText <https://github.com/ibireme/YYText>
//
//  Created by ibireme on 14/10/18.
//  Copyright (c) 2015 ibireme.
//
//  This source code is licensed under the MIT-style license found in the
//  LICENSE file in the root directory of this source tree.
//
#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 MyView {
        NSTimer *_timer;
     }
     - (void)initTimer {
        YYTextWeakProxy *proxy = [YYTextWeakProxy proxyWithTarget:self];
        _timer = [NSTimer timerWithTimeInterval:0.1 target:proxy selector:@selector(tick:) userInfo:nil repeats:YES];
     }
     - (void)tick:(NSTimer *)timer {...}
     @end
 */
@interface YYTextWeakProxy : 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