自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 iOS开发-学习规划及阶段性目标,学习方法整理

iOS完整学习路线可参考这个图,iOS完整学习路线(参考大神的)目前阶段对OC的语法基础稍有了解,接下来一段时间主要目标是OC语法基础和UI控件的学习使用,UIView 常用的一些UIButton,UILable,UIImageView,UITextFiled, UIScrollVIew,UIAlertiew,等学习的方式: 看书+ 跟着敲源码,读OC代码,学习知识点并总结归纳成笔记,经常复习关键知识点.学习的时候可以经常和Java语法类比学习,其实有很多地方都是相似的,对于比较晦涩的一部分比如内存管

2021-01-24 12:12:51 676

原创 使用vscode写python报错及解决

使用vscode写python报错及解决

2023-02-05 18:06:59 2041

原创 iOS开发-学习笔记-Xcode学习

先贴当前Xcode版本12.4目前来说是最新的,针对12.4版本学习了一些特性,做一些记录和整理.首先是新建工程界面,新建工程最新版没有SingleViewApplication选项, 也没有Empty Application模板选项,看到一篇工程文件详解自动生成了很多文件,其中从上往下依次是:AppDelegate.hAppDelegate.mSceneDelegate.hSceneDelegate.mViewController.hViewController.mMain.

2021-02-10 17:31:38 499

原创 iOS开发-学习笔记-视图控件

- (void)viewDidLoad { //创建视图 [super viewDidLoad]; CGRect screen = [[UIScreen mainScreen] bounds];//获得屏幕的边界,其返回值是CGRect类型,CGRect是描述视图对象位置和大小的结构体 CGFloat labelWidth = 90; CGFloat labelHeight = 20; CGFloat labelTopView = 150; CGRe

2021-02-08 10:40:42 186

原创 iOS开发-iOS基础-UIView-Button

添加button选择Main.storyboard(这是根布局文件)打开对象库,对象库里面有各种按钮,文本框,手势,视图等对象,可以搜索查找,添加一个对象,找到button的控件,直接拖拽到视图中.Button的属性修改1.调节按钮的位置和大小,点击button2.点击小尺子按钮,调出调节面板3.改变button的形状,点击Show,下拉选择4.更改左边距和上边距,直接改数字或者拖动,拖动时会实时更改5.拖动时选择是否展示自动对齐虚线,可以选择上下左右是否展示按钮的属性-铅笔图标

2021-01-31 16:51:31 414

原创 iOS开发-学习笔记-字符串操作

将字符串分割成数组将字符串中的特定字符移除后,分割成数组的componentsSeparatedByString方法是通过移除相同的字符去分割的,componentsSeparatedByCharactersInSet是NSArray *text= "hello world";NSArray *words = [text componentsSeparatedByString:@" "];//以空格将text字符串分割成数组数组按特定字符变成字符串componentsJoinedByStrin

2021-01-31 15:16:28 337

原创 iOS开发-学习笔记-代码块和并发性

为什么要用代码块为了方便实现并发性, 增强函数的功能, 可以通过代码块绑定变量来创建对象. 把一段代码当一个变量使用.block详解代码块的声明和实现可以像声明一个函数一样来声明一个block ,可以像定义一个函数的方法一样来定义一个block,也可以将block当作一个对象来调用。代码块的声明:返回值类型(^代码块名字)(参数列表)代码块实现:代码块名字=^(参数列表){代码块的行为主体};//声明一个代码块 void(^aBlock)(NSString*x);//实现代码块

2021-01-28 15:10:26 88

原创 iOS开发-学习笔记-协议

可参考协议详解协议的作用,为什么要用协议针对面向对象思想中的协议的作用类似java中的接口回调,在android中经常使用监听者设计模式实现对某个事件的监听,再通过接口回调实现监听者触发的动作,oc的代理就可以实现这个功能。委托,代理. 还有另一种作用就是,类A他在做某件事时,但在这件事中他有些地方(如: 事件小a)无法自己完成需要有第三方(类B)来完成事件小a,那么类 B就需要实现事件小a,从而使类 A完成这件事。类A与类B 间就存在一种委托关系,或说是代理。配置,比如类A 是sdk

2021-01-27 17:31:22 120

原创 iOS开发-学习笔记-类别,类扩展,委托

类别category类别是一种为现有类添加新方法的方式.习惯上把类别代码放在独立的文件中,以"类名+类别名称"命名.类别的基本语法如下:@interface ClassName(CategoryName)//method declarations@end@interface 类名(类别名)类别方法申明@end注意几点:1.现有类的类名位于 @interface之后2.括号中是类别的名称(只要名称唯一,可以添加任意多的类别)3.类别没有实例变量部分类别的方法可以自由引用类的实例变量

2021-01-26 17:55:00 128

原创 iOS开发-学习笔记-属性

属性是怎么达到减少代码数量的作用的使用属性关键字,不需要太多的方法定义语句,因为多个方法里面可能都有相同属性的字段定义,只要使用属性关键字,不同的方法都可以对这个属性进行设置和访问.头文件中这样使用:#import <Foundation/Foundation.h>#import "Tire.h"@interface AllWeatherRadial : Tire{ float rainHanding; float snowHanding;}@property float r

2021-01-24 17:45:15 288

原创 iOS开发-学习笔记-对象初始化

创建对象有两种方法:[类名 new][[类名 alloc] init];惯例是使用第二种. 两种效果基本等价,不同的是第二种可以在分配内存时地址连续,更节约资源消耗,还可以调用多个init方法初始化.创建对象后需要进行(内存)分配和初始化两个操作,这两个操作是分离的,分配是从操作系统获得一块内存,初始化是将这块内存用于存储对象.使用的方法是嵌套调用Car *car = [[Car alloc] init];为什么要用嵌套: 因为初始化返回的方法可能与分配的对象不同.惰性求值: 即使目前没有设

2021-01-12 22:34:44 89

原创 iOS开发-捕获异常,抛出异常

发生异常时,可以创建一个异常对象,Cocoa中使用NSException类表示异常, 处理异常的方式: 抛出并捕获异常的原因.要支持异常特性,需要打开-fobj-exception被打开,启用Objective-C Exception.异常的关键字都是以@ 开头的.@try : 定义用来测试的代码块,决定是否要抛出异常@ catch: 定义用来处理已抛出异常的代码块,@finally : 定义无论是否有抛出异常都会执行@throw: 抛出异常.为了确保Cocoa能够正常处理异常,应该只用NS.

2021-01-12 12:33:56 476

原创 IOS开发-学习笔记-内存管理

Objective-C的学习资料不像安卓那么多, 不是很好找,目前找到了一些基础的学习资料备用.Objective-C教程OC随笔基础知识掘金-Objective

2021-01-11 17:18:39 86

原创 安卓学习笔记整理

安卓开发基础整理的一点笔记,回顾备用~activity启动模式:标准:standard;栈顶:singletop栈内:singletask;全局:singleinstancescheme跳转协议通过注册scheme可在App页面内跳转,从H5页面跳转到App,从一个App跳转到另一个Appservice启动方式startService()步骤:定义一个类继承Service,注册Service,使用Context的startService(Intent)方法启动。生命周期: onCreate, o

2021-01-08 14:23:29 196

原创 数据库相关学习笔记整理

数据库相关的学习笔记,仅作为回顾和复习备用.数据库慢查询 原因.SQL编写问题:没有使用索引或索引没有起作用(索引中有or,like以%开头, 需要类型转换,索引列有运算.使用了函数,复合索引未用左列字段); 查询结果较大,返回不必要的值; 锁使用不合理或出现死锁; 查询语句未优化; i/o读写慢调优方法: 不要使用select*, OR的查询尽量使用union代替,尽量少用视图,不必要时不用distinct和order by,可以改在客户端执行,尽量选择分区度高的列作为索引,删除表用trunc

2021-01-08 14:19:41 74

原创 计算机网络知识学习笔记整理

最近重新回顾了计算机网络知识,做一个笔记,便于回顾和复习.HTTP常用方法get,post,head,put,deleteHTTP长连接和短连接长连接-client和sever建立通讯连接后不断开,再进行报文发送和接受,连接一直存在,可用netstat -f inet|grep 567查看,用于点对点通讯;短连接-client和sever每进行一次报文交易才进行连接,交易完毕后立即断开连接,常用语一对多的通讯.HTTP和HTTPS区别HTTP是超文本传输传输,信息是明文传输,HTTPS是SSL加密传

2021-01-08 14:16:44 127

原创 Java基础学习笔记整理

进程和线程的区别 进程是系统资源分配的最小单位,线程是系统调度和分派的最小单位,一个进程可包括多个线程,一个线程只能属于一个进程, 进程是独享资源,线程间可共享资源和内存,进程切换比线程切换开销大,进程结束时所属的所有线程均结束,多线程编程比多进程复杂度高.进程间通信的方式 管道(半双工,只能父子进程间),命名管道FIFO,消息队列,信号量,共享内存,socket线程间通信的方式高. 全局变量, synchronize前提下使用wait,notfy,notfiAll, lock condit..

2021-01-08 14:11:40 103

原创 spring学习笔记整理

springspring是什么: 一个轻量级的企业开发框架,可以解决企业级应用开发的复杂性,简化Java开发.核心特性: 依赖注入和面向切面编程;4个关键策略: 1) 基于POJO的轻量级和最小侵入编程; 2) 通过依赖注入和面向接口实现松耦合 3) 基于切面和管理进行声明式编程 4) 通过切面和模板减少样板式代码.优点: 1) 松耦合,2) 支持切面编程,可以方便权限拦截,监控等,3) 声明式事务的支持,无需手动编程,方便程序测试 4) 方便继承各种框架,降低JavaEE API的使用难度.缺点

2021-01-08 14:09:14 66

原创 MQ,Redis等中间件-学习笔记整理

最近学习了一些中间件,Redis,MQ等,简要整理下以便回顾,复习使用.MQ为什么要使用MQ: 解耦,异步,削峰.解耦: 如客服系统利用MQ发布订阅模型,监听MQ消息处理,不需要关心其他系统调用是否成功或超市,其他系统需要数据就自己去MQ里面消费,不需要了就取消对MQ的消费即可;异步: A的任务包括BCD的逻辑,A把消息发到MQ队列中即可,BCD再处理,减少请求延迟;削峰: 减少高峰时对服务器的压力,如,数据库每秒从MQ中获取2000个进行处理,避免性能崩溃.缺点: 1) 系统高可用降

2021-01-08 13:54:54 507

原创 直播-流媒体-音视频技术学习笔记整理

直播的原理:主播端采集,渲染,编码,封装–>网络传输到流媒体推流器–>CDN—>观众端解码播放其中每个过程相关的技术整理如下:过程相关技术采集[1]视频采集–CCD 成本高-质量好,CMOS成本低质量差,采集的原始数据是YUV或RGB格式,文件很大采集[2]音频采集-拾音器-声电转换装置(咪头),音频放大电路,采集的原始数据是PCM渲染滤镜,美颜,磨皮,OpenGL渲染编码[1-码率]码率选择-CBR 固定码率会造成马赛克, VB

2021-01-08 10:38:34 325 2

原创 spring- 第一个SpringMVC程序及遇到的问题

首先参考的是这篇文章跟着实践了一下,其中遇到了以下问题,在此做一个记录,以便之后查阅;IDEA里面标记文件夹, 刚开始一直搞不对,来回点了好几次,最后发现还是操作顺序的问题,最终效果应该是如图,不同文件夹的类型图标颜色都不同,决定IDEA编译时怎么处理,操作步骤:File–>Project Structure-module,刚开始不熟练,我觉得还是一个一个设置比较好,不会乱,不然一通狂点 发现还是都不对.先配置Java文件夹然后配置resources文件夹,如果配置正确,reso

2021-01-07 21:52:54 123

原创 iOS开发-学习笔记-Foundation Kit,数据类型,常用的集合-数组,枚举,字典,字符串操作

Cocoa是由许多不同的框架组成的,最常用于桌面端应用程序的是Foundation 和Application Kit,她包含了所有的用户界面UI对象和高级类.iOS平台上的应用程序还需要用到User Interface Kit (UI Kit).Foundation是App KI和UI Kit的基础,拥有100多个类,所有的类都可以在安装文档中找到,Xcode顶部菜单栏的Help-Developer Documentation可以查看这些文档.常用的数据类型范围-结构体NSRange typ.

2021-01-04 21:54:40 131

原创 iOS开发-学习笔记-复合,拆分接口.Xcode常用技巧

复合的实现: 通过包含作为实例变量的对象指针实现.复合和继承的区别:如果可以说" X有一个Y: 就可以用复合;如果可以说"X是一个Y" 就可以用继承.NSLog的%@,可以输出对象.处理时会询问参数列表中相应的对象以得到这个对象的描述.存取方法要对其他对象的属性进行操作时,绝对不能直接改变对象里面的值,应该尽量使用对象提供的存取方法,即setter和getter方法,setter方法:需要有set前缀,可以设置属性,getter方法,不可有get前缀,因为get在COcoa里面意味着这个方.

2021-01-03 15:08:22 208

原创 iOS开发-学习笔记-类的继承和继承的工作机制

不要直接更改由继承得到的实例变量,一定要通过方法或property属性来更改.OC不支持多继承,只能继承一个类;想达到多继承可使用 category, protocol等来实现;继承的语法: @interface Circle : NSObject, 冒号后是需要继承的类;类中没有声明实例变量时可以省略花括号,类需要先声明@interface,然后实现@implementation超类 : 是继承的类,@interface Shape : NSObject@interface Circle .

2020-12-31 22:44:48 161

原创 iOS开发-学习笔记-类的实例化和调用

@符号:OC中@符号就代表是C语言的扩展;@interface Circle : NSObject{ ShapeColor fillcolor; ShapeRect bounds;}-(void) setFillColor: (ShapeColor) fillColor;- (void) setBounds: (ShapeRect) bounds;- (void) draw;@end// CircleCircle 类的声明,以@开头,表示是OC语言,NSObject.

2020-12-31 19:42:55 132

原创 iOS开发学习笔记-枚举和结构体

枚举类型,详细可查看这篇文章记录重点:枚举是一种数据类型;枚举可以定义整型,字符型常量,也可以定义变量;用typedef关键字将枚举类型定义成别名,并利用该别名进行变量声明:typedef enum{ //枚举定义形状 kCircle, kRectangle, kEgg} ShapeType;enum BOOLEAN { FALSE = 0, TRUE } match_flag;同一个程序中不能定义同名的枚举类型,不同的枚举类型中也不能存在同名的命名

2020-12-30 22:08:01 93

原创 安卓笔记整理-打开项目无法加载可视化编辑器,提示Design editor is unavaiable until next gradle sync

跟着书里面的项目学习安卓项目,直接在AS里面打开源代码的时候一直报错,可视化编辑器不能用,如下:Design editor is unavaiable until next gradle sync然后File里面也找不到Sync Project with Gradles Files这个选项,查了很多资料发现,原因是-书中的资料是以工程的形式打包的,不是AS可识别的工程文件,所以无法正常gradle构建项目,核对project名字和包名是否一致,书中的项目打开后,project名字和包名不

2020-12-30 12:08:28 12194 6

原创 Android-学习笔记-LayoutInflater

它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如 Button、TextView等)。作用就是:找布局文件,并动态加载.public void OnMenu(View view){ // 获取自定义的菜单布局文件 View popupWindow_view = getLayoutInflater().in

2020-12-30 11:57:50 144

原创 object-c 学习笔记(一)基础术语

#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) { const char *word[4] = {"asdf","weweff","srgerger","rtgrgeg"}; int count = 4; NSLog(@"The numbers from 1 to 5:"); for(int i =0; i<count; i++){

2020-12-29 21:30:12 110

原创 android studio开发的第一个APP-简易计算器

List item先放效果图List item菜单栏结构,只需要写3个文件,需要一个图片作为背景;写这个APP共分为以下几个步骤:1)把图片放在res的mipmap-hdpi文件夹里面,添加背景图用fitXY铺满,最好使用png格式,2)添加标题,3) 线性布局嵌套一个6行4列的网格布局;4) 添加数字,运算符的按钮16个 ;5)按钮和组件关联 ,给按钮添加点击监听事件 ;6)点击数字和小数点按钮时在文本输入并显示数字 ;7)点击运算符进行计算,输出结果;贴代.

2020-12-27 22:28:24 952

原创 airtest有很多同名节点时快速定位到的一个方法

使用airtest的时候经常会出现节点树上很多节点名字完全相同的情况,常规的办法是向上找到第一个唯一的父节点,然后用child往下遍历,推荐使用以下这个方法实现,代码如下:def find_point(poco,root_name,child_name,timeout = 0.1): start = time.time() result = [] while len(result) == 0 and (time.time() - start < timeout):...

2020-09-17 13:48:31 2341

原创 使用pycharm编写Python+airtest手机自动化测试case的笔记

批量注释多行代码:command+/批量减少缩进 shift+ tab删除快捷键:command+删除键project下要创建package,不要创建directory创建project的时候可以使用已经配置好的环境,这样就不用再导第三方包了airtest最好使用最新版本,最新版本会修复一些已知的BUG,而且界面汉化易用性提升,使用时间长了进程会容易卡死,出现能连上手机但无法定位元素的问题,此时重启airtest重试 (我有几次都遇到了这种情况,重启airtest就可以正常定位元素了)编写.

2020-08-30 15:02:11 3057

原创 mac版airtest连接iOS可能遇到的问题

可能遇到卡的问题,实在不行就重启下airtest可能遇到元素定位不到的情况,此时解除锁定,再让airtest捕捉一下试试点击这个小锁,让他自己捕捉一会元素,然后再锁定查找元素,试过这样可以找到元素.更多待补充…...

2020-08-07 14:41:14 1046

原创 写完代码提交git详细步骤

三部曲:git add .git commit -m ‘message’git push origin XXX:XXX首先看自己在哪个分支,使用git status查看:查看后是这个界面:确认是在自己的分支后,先将工作区的内容提交到暂存区,可提交多个文件到暂存区,提交的命令是:git add .提交后没有提示就是成功了,然后将暂存区的提交到本地生成一个节点:git commit -m ‘message’提交后会提示类似如下: 2 files changed, 278 inse

2020-08-07 14:32:35 1483

原创 airtest常用方法

常用方法集touch()touch(v, times=1,duration=0.01,right_click=False):点击v:截图对象-图片 或者坐标(x,y) 通过框选按钮来获取v的值 此(x,y)类似(1024,768)的坐标值times:点击次数duration:点击持续时间right_click:如果是windows平台,则=True表示鼠标右键点击,Android/IOS无用【注意】:1.times和duration可以组合使用,表示点击times次,每次间隔d

2020-08-07 11:53:18 3976

原创 Mac版 Xcode+Tagent+airtest环境搭建-详细操作步骤

官方给的文档是:iOS连接https://airtest.doc.io.netease.com/IDEdocs/device_connection/4_ios_connection/看了下还是不够小白,操作起来还需要请教别人,自己探索后把操作步骤记录了下:启动Tagent, 下载官方给的文件后,找到WebDriverAgent.xcodeproj这个,双击一下就启动了;启动xcode,连接手机,此时操作界面如下:显示驱动已经启动,且提示连接设备,点击Generic ios devices,选择自己的

2020-08-05 11:50:01 1301 4

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除