自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

蜗牛的小房子

纸上得来终觉,绝知此事要躬行。

  • 博客(66)
  • 资源 (3)
  • 收藏
  • 关注

原创 flutter -- root view 架构

### 1. Stack + OffStage + TickerMode能保持状态,不能实现懒加载* Stack:类似Android里的FrameLayout,按照children的顺序依次绘制。用它可以保存所有子页面的状态。* OffStage:可以控制控件是否参与布局和绘制* TickerMode:可以控制控件是否动画``` Widget _bodyPage() { return Stack( children: <Widget> [ _...

2021-02-01 17:34:19 255

原创 flutter -- 创建一个新的应用

# 创建一个新的应用## VS Code1. 启动 VS Code2. 调用 View>Command Palette… (shift+command+P)3. 输入 ‘flutter’, 然后选择 ‘Flutter: New Module Project’ action4. 指定放置项目的位置,然后按蓝色的确定按钮5. 输入 Project 名称 (如myapp), 然后按回车键6. 等待项目创建继续,并显示main.dart文件## Terminal```$ .

2021-02-01 17:05:09 197

原创 使用DZNEmptyDataSet指定customview时报 height and vertical position are ambiguous for uiview

直接修改源码- (void)setupConstraints.....if (_customView) { [self.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[customView]|" options:0 metrics:nil views:@{@"customView":_customView}]];// [self.contentView

2020-08-17 15:24:10 990

原创 use Swift for TensorFlow

在安装 swift tensorflow toolchain的是时候会报开发者认证安全问题,安装完成之后,运行下面代码仍然会报签名错误,通过启用“Signing & Capabilities > Hardened Runtime”中的“Disable Library Validation”选项来解决问题,此选项使Xcode项目无需任何代码签名即可添加框架。import TensorFlow#if canImport(PythonKit) import PythonKit..

2020-08-15 11:03:08 191

原创 SourceTree避免输入密码方法

方式一:利用命令行已经拉取完代码,在sourcetree 的界面打开终端:打开终端之间在终端输入 git config --global credential.helper store这条命令之后执行一次push操作,这个时候还要输入账号密码,以后就不用了.方式二:在git的congfig的url字段里加入账号密码1.https://git.coding.net/项目.git2. https://账号:密码@git.coding.net/项目.git由1变为2,且2中..

2020-07-09 16:42:14 1462

转载 WKWebView详解&WKWebVieW和JS交互

开发App的过程中,常常会遇到在App内部加载网页,通常用UIWebView加载。而这个自iOS2.0开始使用的Web容器一直是开发的心病:加载速度慢,占用内存多,优化困难。如果加载网页多,还可能因为过量占用内存而给系统kill掉。各种优化的方法效果也不那么明显iOS8 以后,苹果推出了新框架 WebKit,提供了替换 UIWebView 的组件 WKWebView。各种 UIWebView 的性能问题没有了,速度更快了,占用内存少了,体验更好了,下面列举一些其它的优势:1、在性能、稳定性、功能方面有很.

2020-07-01 11:16:01 1998

原创 metal基础

整体渲染过程MTLDevice代表GPU设备,提供创建缓存、纹理等的接口;MTLCommandQueue 用于组织命令缓冲区以供GPU执行的队列。MTLCommandBuffer 一个容器,用于存储编码的命令以供GPU执行。MTLCommandEncoder 将GPU命令写入命令​​缓冲区的编码器。CommandQueue、CommandBuffer、CommandEncoder的关系顶点渲染过程MTLLibrary Metal着色器功能的集合。MTLRenderPipelineSt

2020-06-29 19:24:23 292

原创 使用Jenkins 遇到的坑

1.插件安装失败更新中心镜像设置修改更新中心的地址为 https://updates.jenkins-zh.cn/update-center.json2.调用Xcode失败xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Develop...

2020-04-22 16:08:13 577

原创 Jenkins Xcode 插件应用

Jenkins的安装可以参考我的另一篇博文Jenkins的安装和删除1.安装xcode插件插件管理 -- 可选插件 中搜索Xcode integration选中直接安装2.应用1)、新建一个项目2)、General -- 描述: 项目描述3)、源码管理 -- Git 输入仓库URL指定分支,我的是直接访问的钥匙串,如果出现报错可以直接添加Cr...

2020-04-22 15:59:21 704

原创 Jenkins安装和删除

1.brew 安装$brewinstallJenkins2.命令行启动Jenkins$ jenkins3.浏览器打开http://localhost:8080/4.获取密码$sudo cat /Users/***/.jenkins/secrets/initialAdminPassword5.安装推荐插件安装推荐插件,可能会失败,大多是因为网络的问题,,多试几...

2020-04-22 15:25:11 1377

原创 Jenkins笔记

一、安装运行1.brew 安装$brewinstallJenkins2.命令行启动Jenkins$ jenkins3.浏览器打开http://localhost:8080/4.获取密码$sudo cat /Users/***/.jenkins/secrets/initialAdminPassword5.安装推荐插件安装推荐插件,可能会失败,大...

2020-04-16 16:28:44 461

原创 Jenkins安装插件超时

Jenkins自动打包ios工程详细使用方法可参考这一篇博文,我在此不做赘述,这里主要写一下遇到的报错1.安装好选择推荐插件安装,部分插件安装失败,其实是大部分安装失败,点开monitor一看全是爆红,一版滑不到底,究其原因就是依赖没有加载成功,点击纠正,进入可选插件,直接搜插件的名称,直接安装直接安装插件还是失败java.net.SocketTimeoutException...

2020-03-27 22:55:26 4552

原创 全局gitignore_global导致文件被忽略

在用GitHub Desktop上传工程时,发现.xcodeproj工程文件没有传到远程仓库,使用 git add 命令行添加又报错,****:Petrel roo$ git add Petrel.xcodeprojThe following paths are ignored by one of your .gitignore files:Petrel/Petrel.xcodeproj...

2020-03-27 09:51:02 401

原创 URLNavigator应用及源码解析

应用集成pod 'URLNavigator' 创建NavigationMap文件 将视图注册到URL模式navigator.register("petrel://douban") { url, values, context in return DouBanViewController()}在didFinishLaunchingWithOptions方法中初始化...

2020-03-26 12:21:36 424

原创 URLNavigator应用及源码解析

### 集成``` pod 'URLNavigator'```### 应用1. 创建`NavigationMap`文件2. 将视图注册到URL模式```navigator.register("petrel://douban") { url, values, context in return DouBanViewController()}```3. 在`didFi...

2020-03-26 09:26:26 1016

原创 iOS开发之网络安全

篡改数据客户端通常会保存uid,访问接口时传入uid告诉服务器是谁访问。那么引出了最初级的安全问题,如果我们仅仅只信任uid那一旦修改这个参数值就可以篡改别的用户数据了。 使用token,在用户登录成功服务端返回uid和token,客户端访问服务器时提供这两个参数,uid区别唯一性,token验证合法性。这样即使修改了uid,对应的token不一致也无法成功。 使用https,...

2020-03-10 11:27:09 347

转载 iOS耗电量检测与优化

一、耗电量检测1、进入手机"设置"->"电池",可以直观的看出来手机应用的耗电情况。image.pngimage.png2、使用Xcode打开你的工程,然后插上手机,使用真机running项目(必须是真机),然后command+6,点击Energy Impactimage.png蓝色表示--合理 黄色--表示程序比较耗电 红色--表示仅仅轻度 ...

2020-03-10 11:07:53 831

原创 App启动优化

App启动的三个阶段:main()函数执行前; main()函数执行后; 首屏渲染完成后。main()函数执行前加载可执行文件 加载动态链接库 Objc运行时初始处理,相关类的注册、category注册、selector唯一性检查等 初始化,执行+load()方法、__attribute__((constructor))修饰的函数调用、创建c++静态全局变量此阶段优化方案:...

2020-03-05 14:05:13 97

原创 iOS卡顿监测方案总结

整理了一下iOS中卡顿监测的那些方案,不了解卡顿的原理的可以看这篇文章iOS 保持界面流畅的技巧,写的很好。FPSFPS (Frames Per Second) 是图像领域中的定义,表示每秒渲染帧数,通常用于衡量画面的流畅度,每秒帧数越多,则表示画面越流畅,60fps 最佳,一般我们的APP的FPS 只要保持在 50-60之间,用户体验都是比较流畅的。监测FPS也有好几种,这里只说最...

2020-03-05 12:07:02 388

原创 1 duplicate symbol for architecture armv7

duplicate symbol _registerTag in: /Users/bear/Library/Developer/Xcode/DerivedData/CarShare-aocjqpzrgbdimnfzsvvibtngyved/Build/Intermediates.noindex/XXXX.build/Debug-iphoneos/XXXX.build/Objects...

2019-09-11 10:50:26 826

原创 项目引入 protobuf 历程

最近在做出行类的项目,需要socket上传分发 location 数据,之前都是json数据,现在要改成protobuf,头一次听说这个东东,下面是搜到的一些内容,然后写了一个demo,用Python实现了一个简单的socket 服务端,简单实现发送分发protobuf数据。闲话少说,让我们先了解一下protobuf是什么protocol buffers 是一种语言无关、平台无关、可扩展的序列...

2019-09-10 16:05:04 396

原创 cocoapods 引入 三方库 历程

在已有的工程中没有使用 pod, 新建一个demo手动导入protobuf时报错GPB文件找不到,直接使用pod导入没有出现类似错误,所以就在项目工程中引入pod去集成protobufplatform :ios, '8.0'use_frameworks!source 'https://github.com/CocoaPods/Specs.git'target 'Project' do...

2019-09-10 11:02:53 274

原创 vapor 之 Router

Swift vapor3 - API与Router这里有一篇博文写的很详细,自认没他写的好,我就不赘述这部分内容啦,请自行点击查看,关于这片文章之外的内容添加一点router.groupedgroup后可以添加路径和中间件,添加路径不必赘述,在提供的可变参数“中间件”中创建一个新的“路由器”,后面所有添加的路由都将被中间件封装router.register(collection: &l...

2019-08-22 16:12:32 126

原创 Ping for mac

终端打开终端 , ping <域名> 停止: control + c网络实用工具Spotlight 搜索“网络实用工具” 选中ping页面

2019-08-22 09:02:37 832

原创 vapor xcode failed

dependencies错误$ vapor xcodeGenerating Xcode Project [Failed]/Users/roo/Roo/Vapor/Demo: error: manifest parse error(s):/Users/roo/Roo/Vapor/Demo/Package.swift:9:19: error: expression type '[Pack...

2019-08-16 17:07:50 451

原创 MySQL 从安装到卸载(Mac)

1,安装、卸载安装官网下载免费,我的是社区版mysql-8.0.16-macos10.14-x86_64,双击dmg文件,安装列表里只有一个点击安装即可,安装成功系统偏好设置中即可显示出来,单击查看状态Start MySQL when your computer starts up 默认选中,Stop MySQL Server 停止MySQL服务卸载sudo rm /...

2019-08-14 09:33:52 332

原创 vapor 链接MySQL失败

configure.swift // === mysql === // 首先注册数据库 try services.register(FluentMySQLProvider()) // Configure a MySQL database let mysql = MySQLDatabase(config: MySQLDatabaseConfig(host...

2019-08-13 20:33:29 251

原创 category、extension、protocol

分类(category)① category只能添加“方法”,不能添加成员变量。② 分类中可以访问原来类中的成员变量,但是只能访问@protect和@public属性。③ 添加方法加上前缀,添加方法会覆盖父类的同名方法,可以防止意外覆盖,也防止被别人覆盖。④ 分类中添加的成员变量,要通过getter、setter方法进行添加。类扩展(extension)① 类扩展的属性和方法都是私有的,...

2019-07-08 21:16:53 192

原创 关于内存管理

什么是内存管理?是指软件运行时对计算机内存资源的分配和使用技术。其最主要的目的就是如何高效、快速的分配,并且在适当的时候释放和回收内存资源。内存分配在 iOS 中数据是存在堆和栈中的,然而我们的内存管理管理的是堆上的内存,栈上的内存并不需要我们管理。非OC对象(基础数据类型)存储在栈上 OC对象存储在堆上引用计数引用计数是计算机编程语言中的一种内存管理技术,是指将资源(可以是对...

2019-06-20 09:19:13 113

原创 关于埋点

先说一下埋点是干嘛的,埋点可以解决两大类的问题:一是了解用户使用App的行为, 二是降低分析线上问题的难度。常见的埋点方式有 代码埋点、可视化埋点和无埋点。其中,可视化埋点和无埋点属于无侵入的埋点代码埋点主要通过手写代码的方式来埋点,能很精确的需要埋点的代码处上埋点代码,可以很方便的记录当前环境的变量值,方便调试,追踪埋点内容,但开发工作量大,并且埋点代码到处都是,后期难以维护。 可...

2019-06-20 07:50:47 225

原创 关于链接器

编译器和解释器执行代码的特点如下:采用编译器生成机器码执行的好处就是效率高,缺点就是调试时间长 采用解释器执行的好处是编写调试方便,缺点是执行效率低iOS开发采用的编译器是 LLVMLLVM是编译器工具链接技术的一个集合。其中 lld 项目是内置链接器。编译器会对每个文件进行编译,生成Mach-O(可执行文件);链接器会将项目中的多个 Mach-O 文件合并成一个LLVM编译过程如...

2019-06-19 18:37:16 96

原创 项目模块化记事

首先解决三个问题:模块粒度应该如何划分? 如何分层? 多团队如何协作?颗粒度划分对于 iOS面向对象编程开发模式来说,我们应该遵循以下五个原则,即solid原则单一功能原则:对象功能要单一, 不要在一个对象里添加很多功能 开闭原则:扩展是开放的,修改是封闭的 里氏替换原则:子类对象是可以替代基类对象的 接口隔离原则:接口的用途要单一,不要在一个接口上根据不同的入参实现多个功...

2019-06-17 22:44:53 101

原创 APP启动那点事

一般而言,App的启动时间指的是从用户点击App开始,到用户看到第一个界面之间的时间。总结来书,App的启动包括三个阶段:main()函数执行前; main()函数执行后; 首屏渲染完成后。main()函数执行前在 main() 函数执行前,系统主要会做下面几件事:加载可执行文件 (App 的 .o文件集合) 加载动态链接库,进行rebase 指针调整和bind符号绑定 Ob...

2019-06-17 17:45:59 85

转载 Swift: 对于weak、unowned的理解

可参考这些文章:1.Swift内存管理、weak和unowned以及两者区别(如何使用Swift 中的weak与unowned?)2.Swift:Weak 和 Unowned3.扒一扒swift中的unowned和weak下总结:1.共同点:1.1 引用对象的自动引用计数都不会加1,不会造成对引用对象的强引用。2.不同点:2.1 weak的对象,在blo...

2019-06-16 19:17:39 679

转载 socket、tcp、udp、http 的认识及区别

一、先来一个讲TCP、UDP和HTTP关系的1、TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。 在传输层中有TCP协议与UDP协议。在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。因此,HTTP本身就是一个协议,是从Web服务器传输超文本到本地浏览器的传送协议。...

2019-04-16 11:23:43 82

原创 tf.expand_dims()、tf.tile()、tf.squeeze()

tf.expand_dims(input, dim, name=None)TensorFlow中,想要维度增加一维,可以使用tf.expand_dims(input, dim, name=None)函数。当然,我们常用tf.reshape(input, shape=[])也可以达到相同效果,但是有些时候在构建图的过程中,placeh...

2019-03-29 14:15:03 719

转载 python中数组和列表读取一列的方法

在python中,普通的列表list和numpy中的数组array是不一样的,最大的不同是:一个列表中可以存放不同类型的数据,包括int、float和str,甚至布尔型;而一个数组中存放的数据类型必须全部相同,int或float。​ 在list中的数据类型保存的是数据的存放的地址,简单的说就是指针,并非数据,这样保存一个list就太麻烦了,例如list1=[1,2,3,4]需要4个指针和四个数...

2019-03-29 14:02:12 23835 1

原创 用tensorflow构建动态RNN

直接看代码def create_cell(): cell = rnn.LSTMCell(num_units) return rnn.DropoutWrapper(cell, input_keep_prob=0.5)rnn_cell = rnn.MultiRNNCell([create_cell() for _ in range(2)])output, states = ...

2019-03-28 22:50:56 339

原创 tensorflow报错信息

报错信息OMP: Error #15: Initializing libiomp5.dylib, but found libiomp5.dylib already initialized.OMP: Hint: This means that multiple copies of the OpenMP runtime have been linked into the program. Th...

2019-03-28 14:25:56 331

原创 TF-IDF

TF-IDF:是一种加权技术。采用一种统计方法,根据字词在文本中出现的次数和在整个语料中出现的文档频率来计算一个字词在整个语料中的重要程度。优点:能过滤掉一些常见的却无关紧要的词语,同时保留影响整个文本的重要词语。公式如下:TF−IDF(x)=TF(x)∗IDF(x)TF(Term Frequency):表示某个关键词在整篇文章中出现的频率。IDF(InversDocum...

2019-03-20 16:54:06 117

SwiftProjectWithReactNative

原生Swift工程集合react-native,数据交互,rn调用原生函数传值,回调传值,promise传值等等

2018-06-07

tensorflow中文文档

TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理。Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,TensorFlow为张量从流图的一端流动到另一端计算过程。TensorFlow是将复杂的数据结构传输至人工智能神经网中进行分析和处理过程的系统。

2018-06-06

XCTestAPI文档

UItests是由苹果公司开发的一个自动测试UI交互的自动化测试框架,可以帮助我们解决一些测试上的重复工作,节省人工成本,提高测试效率等.随着APP功能的不断增加,尤其是新功能增加后可能要对旧功能做回归测试,产生了大量的重复工作,而这些重复工作有一些是可以通过自动化测试进行完成的,UITests的出现就是为了解决这个问题.

2017-09-27

空空如也

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

TA关注的人

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