归档: 2018

如何进行自动化测试1

测试是一个好的App不可缺少的部分。每一个App都是由一个个小的功能组合到一起的。而这些小的功能又是由一个个函数或者说算法组合到一起的。单元测试就是对这些小的功能或者函数进行测试,良好的单元测试会让代码的健壮性提高很多。XCTest就是XCode为我们提供的一个框架,它提供了各个层次的测试。 ###XCTestCase 每个XCode创建iOS的工程中都有一个叫做”工程名Tests”的分组,这个分

WKWebView白屏之坑

问题最近项目中使用了WKWebView展示echarts图表。起初效果很好,但是长时间测试后发现,WKWebView会出现白屏现象。百度了一番后,发现很多朋友遇到了同样的问题(例如这一篇https://www.jianshu.com/p/2a6cd16aceaa)。所以一开始也把白屏现象归罪于WKWebView的bug,寻思着从WK着手去解决问题。 踩坑白屏现象难复现,所以在发生白屏后,只能用fl

Java反射完全解析1

按例,首先描述定义一下。 Reflection enables Java code to discover information about the fields, methods and constructors of loaded classes, and to use reflected fields, methods, and constructors to operate on th

CAS统一认证中心,针对移动客户端的认证过程设计(APP视角)

CAS统一认证中心,针对移动客户端的认证过程设计(APP视角) 业务场景 统一认证中心CAS,用员工工号密码登录。 有个通讯录server系统 通讯录APP接入两个服务,即登录接CAS,业务接通讯录server 通讯录APP在用户登录的情况下允许查询其他员工信息 简单例子 通讯录server系统有两个接口,用户信息接口,员工信息查询接口 设计过程(未认证) APP启动调用通讯录ser

iCarousel实现轮播(带缩放效果)

效果图 关键代码这是iCarousel自定义部分的关键代码,iCarousel的用法大家应该都知道,没接触过的可以百度,这里就不贴其他代码啦123456- (CATransform3D)carousel:(iCarousel *)carousel itemTransformForOffset:(CGFloat)offset baseTransform:(CATransform3D)transfor

java.lang.UnsatisfiedLinkError

之前做app的时候引入一个第三方库后,报如下错误1java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/***-7Tf-RsFV6kwvEqK9L5ntUg==/base.apk"],nativeLibraryDirectories=[/dat

读懂复杂宏的小技巧

一、什么是宏百度百科的解释是:计算机科学里的宏(Macro),是一种批量处理的称谓。一般说来,宏是一种规则或模式,或称语法替换 ,用于说明某一特定输入(通常是字符串)如何根据预定义的规则转换成对应的输出(通常也是字符串)。这种替换在预编译时进行,称作宏展开。个人简单的理解就是,宏就是你自己定义的一套代码展开的规则,编译器值负责展开,不负责语法的检验。 二、宏基础a、无参宏常用来定义常量 #defi

UIStackView基础用法介绍

介绍 UIStackView 是 iOS9新增的一个布局技术。熟练掌握相当节省布局时间。UIStackView 是 UIView 的子类,是用来约束子控件的一个控件。但他的作用仅限于此,他不能用来呈现自身的内容,类似于 backgroundColor。当然了,这个控件相当易学,属性只有4个。 Axls: 子控件的布局方向,水平或者垂直Alignment: 类似于 UILabel 的 Alignm

URL 编码 iOS

URL 编码 iOS废弃的方法1: 1NSString *aa = [@"http://URL..." stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 废弃的方法2: 123456- (NSString *)encodeParameter:(NSString *)originalPara &#12

ios修改本地useragent(WKWebView)

ios修改本地useragent(WKWebView)1、获取原先的userAgent; 123456/* @abstract Evaluates the given JavaScript string.@param javaScriptString The JavaScript string to evaluate.@param completionHandler A block to inv

如何提高字符转float数据时的数据精度

在开发中经常遇到float类型数据转化为NSString再进行显示,但是经常遇到精度出错的问题,如下代码: float testF = 123.45; NSString *testStr = [NSString stringWithFormat:@"%.2f",testF]; NSLog(@"testF %f",testF); NSLog(@"

echarts之用饼图制作带labelline的旭日图(一)

前言如果你想要用较少的代码实现比较酷炫的数据统计表,echarts是值得你考虑的一种实现方式。官网提供了很多实例供参考。并且配置项手册很详细,几乎囊括了所有的绘图需求。但是再全的配置,偶尔也会有不满足需求的时候。最近在开发过程中就遇到了一个比较头疼的问题。先看下UI效果 思路拿到需求,先看echarts的配置手册,很容易想到使用旭日图来做。但是还没等大致效果出来,坑就来了,旭日图的配置项里面没有l

Android : 监听app后台切换到前台

App后台切换前台可以通过ActivityLifecycleCallbacks方法来实现,ActivityLifecycleCallbacks可以用来监听app中所有Activity的声明周期123456789101112131415161718192021222324252627282930313233public void unRegister(Application application)

计算一年中所有周的第一天和最后一天

准备 在看代码之前你可能需要先了解以下知识 NSDate、NSCalendar和NSDateComponents NSCalendar使用详解 代码 123456789101112131415161718192021222324252627282930313233343536373839404142434445 - (void)weeksWithDateComponents:(NSDat

关于Masonry的使用和注意点

因为之前开发时都是在xib文件中添加约束,或者代码中计算frame并没有接触过Masonry,现在写篇博客来归纳总结下Masonry的使用和注意点。这篇文章只是简单介绍Masonry,以及Masonry的使用,并且会举一些例子出来。但并不会涉及到Masonry的内部实现 Masonry中的坑: 在使用Masonry进行约束时,有一些是需要注意的。 在使用Masonry添加约束之前,需要在addSu

在MKMapView中添加渐变色路径

刚来苏宁接触到的业务并不多,既然要写博客那就暂时上一篇之前所遇到的关于在地图控件中如何添加渐变色路径实现方案吧。 整体实现原理是依据用户跑步配速将坐标点等分为若干色块,将色块相连就形成了渐变色轨迹 如何在iPhone上绘制mapView就不说了,在mapView上绘制轨迹要添加MKPolyline,调用[self.mapView addOverlay:self.polyLine];但这个MKPol

IOS音视频分片缓存库IdiotAVPlayer

boss让我写博客,说能装X,我就来了!!!☺️ 这篇文章最先发布在简书上,今天先拿过来做开山篇。 额~~文采不好,不知道怎么写 来吧,直接切入正题,给大家看看效果吧,免得不是大家想要的东西,浪费大家的宝贵时间。本来想给大家看视频的,但是不知道怎么放,哈哈哈。 再来看IdiotAVplayer实现了什么功能吧。 相信大家看完上面的图片,大概就知道IdiotAVplayer实现了怎样的功能了,主要就

玩转表格:在android上使用ECharts

支持原创,转载请注明出处 前言做Android开发经常会需要画一些图表,自己写的话不仅麻烦而且工作量太大,所以一般都会采用第三方图表框架,现在给大家介绍一款功能非常丰富的图表框架 ECharts 。 #准备ECharts 是由百度开发提供的开源框架,主要提供给Web使用,所以Android中一般使用WebView加载显示,其实本质上也就是用 WebView 加载本地 H5。ECharts的图表