We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HI, friends
// // PPSFPSLabel.m // rninit // // Created by 魔笛 on 2018/7/30. // Copyright © 2018年 Facebook. All rights reserved. // #import "PPSFPSLabel.h" #import "PPSWeakProxy.h" static const NSInteger kFPSLabelHeight = 30.f; @interface PPSFPSLabel() { NSUInteger _count; NSTimeInterval _lastTime; UIFont *_font; UIFont *_subFont; } @end @implementation PPSFPSLabel + (id)fpsLabel { UIScreen *mainScreen = [UIScreen mainScreen]; PPSFPSLabel *fpsLabel = [[PPSFPSLabel alloc] initWithFrame:CGRectMake(0, mainScreen.bounds.size.height - kFPSLabelHeight, 100 , kFPSLabelHeight)]; return fpsLabel; } - (id)initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) { self.frame = frame; self.layer.cornerRadius = 5; self.clipsToBounds = YES; self.textAlignment = NSTextAlignmentCenter; self.userInteractionEnabled = NO; self.backgroundColor = [UIColor colorWithWhite:0.000 alpha:0.700]; _font = [UIFont fontWithName:@"Courier" size:14]; _subFont = [UIFont fontWithName:@"Courier" size:4]; [self addTimer]; } return self; } - (void)addTimer { self.fpsLink = [CADisplayLink displayLinkWithTarget:[PPSWeakProxy proxyWithTarget:self] selector:@selector(tick:)]; [self.fpsLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes]; } - (void)dealloc { [self.fpsLink invalidate]; NSLog(@"timer release"); } - (void)tick:(CADisplayLink *)link { NSLog(@"tick: %f", _lastTime); if (_lastTime == 0) { _lastTime = link.timestamp; return; } _count++; NSTimeInterval delta = link.timestamp - _lastTime; if (delta < 1) return; _lastTime = link.timestamp; float fps = _count / delta; _count = 0; CGFloat progress = fps / 60.0; UIColor *color = [UIColor colorWithHue:0.27 * (progress - 0.2) saturation:1 brightness:0.9 alpha:1]; NSString *text1 = [NSString stringWithFormat:@"%d FPS",(int)round(fps)]; NSLog(@"%@", text1); NSMutableAttributedString *text = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%d FPS",(int)round(fps)]]; [text addAttribute:NSForegroundColorAttributeName value:color range:NSMakeRange(0, text.length - 3)]; [text addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor] range:NSMakeRange(text.length - 3, 3)]; [text addAttribute:NSFontAttributeName value:_font range:NSMakeRange(0, text.length)]; [text addAttribute:NSFontAttributeName value:_subFont range:NSMakeRange(text.length - 4, 1)]; self.attributedText = text; } @end
How to write unit test for CADisplayLink.
I write the kiwi is
describe(@"PPSFPSLabel", ^{ let(fpsLabel, ^id{ return [PPSFPSLabel fpsLabel]; }); it(@"layout on the left-bottom screen", ^{ UIScreen *mainScreen = [UIScreen mainScreen]; [[theValue([fpsLabel frame]) should] equal:theValue(CGRectMake(0, mainScreen.bounds.size.height - 30, 100, 30))]; }); context(@"should add a timer", ^{ PPSFPSLabel *label = [PPSFPSLabel fpsLabel]; [[label should] receive:@selector(addTimer)]; [[label.fpsLink shouldNot] beNil]; }); it(@"time target", ^{ PPSFPSLabel *label = [PPSFPSLabel fpsLabel]; while(true) { } }); });
But the function tick cannot code coverage
tick
The text was updated successfully, but these errors were encountered:
No branches or pull requests
HI, friends
How to write unit test for CADisplayLink.
I write the kiwi is
But the function
tick
cannot code coverageThe text was updated successfully, but these errors were encountered: