近期总结

3 篇文章 0 订阅
2 篇文章 0 订阅

坑永远是踩不完的

真机调试NSLog无效

Xcode8发布之后,使用起来console莫名会输出些系统log, 导致看起来很不爽, 这时候我们会在product->editScheme->设置环境变量OS_ACTIVITY_MODEdisable来禁止系统log, 但是这个时候如果你真机调试的话自己的NSLog也不会输出了

解决

自定义NSLog, 内部实际使用printf来进行log

#ifdef DEBUG

#define CJLog(FORMAT, ...) fprintf(stderr,"%s:%d\t%s\n",[[[NSString stringWithUTF8String:__FILE__] lastPathComponent] UTF8String], __LINE__, [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);

#else

#define CJLog(...)

#endif

CAAnimationGroup 无效

最近需要做一个语音播放的功能,其中用到了语音播放

截取部分animation代码

    CGFloat hiddenDuration = 0.01;
    CGFloat interval = 0.4;
    CABasicAnimation *opcityAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];
    opcityAnimation.fromValue = @(1);
    opcityAnimation.toValue = @(0);
    opcityAnimation.duration = 0.01;
    opcityAnimation.beginTime = CACurrentMediaTime();
    opcityAnimation.removedOnCompletion = NO;
    opcityAnimation.fillMode = kCAFillModeForwards;

    CABasicAnimation *opcityAnimation1 = [CABasicAnimation animationWithKeyPath:@"opacity"];
    opcityAnimation1.fromValue = @(0);
    opcityAnimation1.toValue = @(1);
    opcityAnimation1.duration = interval;
    opcityAnimation1.beginTime =interval + hiddenDuration+ CACurrentMediaTime();
    opcityAnimation1.removedOnCompletion = NO;
    opcityAnimation1.fillMode = kCAFillModeForwards;
    [_layers[1] addAnimation:opcityAnimation forKey:opcityAnimationKey];
    [_layers[1] addAnimation:opcityAnimation1 forKey:opcityAnimationKey];

测试有效, 然后我打算放进group并进行循环, 结果死活不行
然后发现只需要把CACurrentMediaTime()换成0就好了
因为这时候统一是在groupCACurrentMediaTime()上计时, 设置为0即可

Https & iOS App签名

看了几遍印象不是很深,先记录下来
iOS App签名介绍来之bang' blog全文
Https介绍来之bestSwifter全文

最后

推荐一个Apple官方的Xcode帮助大全地址
建议细心看下,帮助很大

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值