- 博客(17)
- 收藏
- 关注
转载 KVO
KVO的全称是Key-Value Observing,俗称“键值监听”,可以用于监听某个对象属性值的改变原理利用RuntimeAPI动态生成一个子类,并且让instance对象的isa指向这个全新的子类当修改instance对象的属性时,会调用Foundation的_NSSetXXXValueAndNotify函数_NSSetXXXValueAndNotify的内部调用如下...
2019-09-03 15:51:00 112
转载 KVC
KVC的全称是Key-Value Coding,俗称“键值编码”,可以通过一个key来访问某个属性常见的API有-(void)setValue:(id)value forKeyPath:(NSString *)keyPath;-(void)setValue:(id)value forKey:(NSString *)key;-(id)valueForKeyPath:(NSStrin...
2019-09-03 15:06:00 138
转载 APPium+Python+iOS屏幕滑动方法对比
最近在学习appium自动化,对iOS手机进行滑动操作进行总结:1、mobile:scroll;该方法在实际使用调用时,会滚动2次。执行时间很长。向下滚动整个屏幕driver.execute_script('mobile: scroll', {'direction': 'down'})向上滚动整个屏幕driver.execute_script('mobile: scroll',...
2019-08-29 14:59:00 485
转载 appium+python自动化实践之查找元素的等待方式笔记
元素等待作用设置元素等待,可以更加灵活的制定等待定位元素的时间,从而增强脚本的健壮性,提高执行效率。元素等待类型强制等待:设置固定等待时间,使用sleep()方法即可实现from time import sleep强制等待5秒sleep(5)隐式等待隐式等待是针对全部元素设置的等待时间driver.implicitly_wait(20)显式等待显示等待是...
2019-08-29 11:00:00 149
转载 Appium自动化测试实践
安装配置Appium环境安装appium安装appium有两种方式,一种是通过命令行终端方式,一种是Appium Desktop。这里推荐使用Appium Desktop方式,只需下载下来安装就可以啦。Appium Desktop下载安装驱动根据被测应用平台选择不同的驱动,这里在Xcode9上测试iOS,选择XCUITest Driver。这是实现自动化测试很重要的一步。驱动其实...
2019-08-28 13:48:00 166
转载 App崩溃监控
常见马虎导致崩溃1 数组越界;2 多线程问题,在子线程刷新UI;3 主线程无响应,主线程超过系统规定的时间没有响应,就会被watchdog杀掉;4 野指针;崩溃信息的收集却并没有那么简单。因为,有些崩溃日志是可以通过信号捕获到的,而很多崩溃日志却是通过信号捕获不到的。第三方崩溃监控工具:PLCrashReporterFabric或者Bugly这些都是通过信号捕获崩溃...
2019-08-27 11:28:00 183
转载 HTTP请求方法
超文本传输协议(HTTP, HyperText Transfer Protocol)是一种无状态的协议,它位于OSI七层模型的传输层。HTTP客户端会根据需要构建合适的HTTP请求方法,而HTTP服务器会根据不同的HTTP请求方法做出不同的响应。1. HTTP版本与HTTP请求方法在HTTP的发展过程中,出现了很多HTTP版本,其中的大部分协议都是向下兼容的。在进行HTTP请求时...
2019-07-12 10:06:00 127
转载 Apple App签名机制
概览数字签名签名机制与验证过程操作流程数字签名 摘要算法将任意长度文本通过一个算法得到一个固定长度的文本。源文本不同,计算结果必然不同无法从结果反推源 例如,MD5和SHA算法 非对称加密即加密密钥与解密密钥不同,且成对出现对外公开的称为公钥,这对密钥生成者才拥有的称为私钥通过私钥加密的密文只能通过公钥...
2019-07-09 11:48:00 252
转载 NSURLSession的前世今生
系统网络框架架构图前世-NSURLConnection NSURLConnection是苹果提供的原生网络访问类,已经有10多年的历史了,它从 iOS 2.0 开始,一直到iOS9被废弃。异步方法在 iOS 5.0 之后才有 ,在 iOS 5.0 之后,是通过代理的方式,来实现网络开发。NSURLConnection常用类NSURL:请求地址NSURLReq...
2019-06-27 11:48:00 106
转载 iOS内存区域分布
概览1,RAM ROM2,内存的几大区域3,案例解释RAM ROMRAM:运行内存,不能掉电存储。ROM:存储性内存,可以掉电存储,例如内存卡、Flash。内存的几大区域为了合理的分配有限的内存空间,将内存区域分为五个区,由低地址向高地址分类分别是:代码区、常量区、全局静态区、堆、栈代码区 用来存放函数的二进制代码,在运行时要防止被非法修...
2019-05-25 14:53:00 137
转载 内存地址与内存空间
概览基本概念进入误区误区诊断总结基本概念什么是位? 什么是字节? 位表示的是二进制位,一般称为比特,即0或1,是计算机存储的最小单位; 字节是计算机中数据处理的基本单位; 计算机中以字节为单位存储和解 释信息,规定一个字节由八个二进制位构成,即1个字节等于8个比特。 ...
2019-05-03 15:42:00 1684
转载 iOS开发日常笔记01
为什么有initWithCoder还要awakeFromNib?awakeFromNib相较于initWithCoder的优势是:当awakeFromNib执行的时候,各种IBOutlet也都连接好了;而initWithCoder调用的时候,虽然子视图已经被添加到视图层级中,但是还没有引用。如果你是基于xib或storyboard创建的控件,那么你可能需要对IBOutlet连接的子控...
2019-03-20 15:49:00 92
转载 关于自定义相机的整理
前言 为什么不用系统相机要用自定义相机呢? 由于系统相机功能单一,界面简单,在开发的过程中为了达到更好的个性化交互设计,符合app主题,提供更多更有趣的功能时候,我们会采用自定义相机。来达到更好的界面效果,更好的用户体验。接下来说说整个自定义相机过程,以及遇到的一些问题。 概览1,流程2,详细各部分初始化,建立会话,获取摄像头嵌入实时预览图层...
2019-03-19 15:50:00 376
转载 几个基本算法
概览 1,冒泡排序; 2,选择排序; 3,快速排序; 4,归并排序; 5,插入排序;冒泡排序 比较两个元素、交换它们的位置 算法原理:冒泡排序算法的运作如下:(从后往前)比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以...
2019-03-18 17:05:00 109
转载 iOS开发线程同步技术-锁
概览1,什么是锁(临界区)?2,常用的锁有哪些?3,相关链接什么是锁(临界区)临界区:指的是一块对公共资源进行访问的代码,并非一种机制或是算法。常用的锁有哪些?互斥锁:是一种用于多线程编程中,防止两条线程同时对同一公共资源(比如全局变量)进行读写的机制。该目的通过将代码切片成一个一个的临界区而达成。NSLock;pthread_mutex;@synchro...
2019-01-03 11:46:00 105
转载 指针
概览指针是C语言的精华部分,通过利用指针,我们能很好地利用内存资源,使其发挥最大的 效率。有了指针技术,我们可以描述复杂的数据结构,对字符串的处理可以更灵活,对数组 的处理更方便,使程序的书写简洁,高效,清爽。1.指针与指针变量2.数组与指针3.函数指针指针与指针变量指针:访问变量,首先应找到其在内存的地址,或者说,一个地址唯一指向一个内存...
2018-12-27 18:27:00 122
转载 iOS中的分类和扩展
一、什么是分类?概念:分类(Category)是OC中的特有语法,它是表示一个指向分类的结构体指针。根据下面源码组成可以看到它没有属性列表,原则上是不能添加成员变量(其实可以借助运行时功能,进行关联),只能增加方法。typedef struct objc_category *Category;struct objc_category {char *category_n...
2018-12-07 22:30:00 95
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人