自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (4)
  • 收藏
  • 关注

原创 android开发博客

1、组件化

2022-12-30 17:42:19 107

原创 s7 s7pe s9 在APP中的配网攻略

低价入手一台S7体脂秤,满心欢喜,原价x99的秤,竟然被我几十块搞到手了,偷乐一会儿。但是这个秤让我费了不少功夫才配网成功分享下配网步骤吧。因简书的审核提示有营销性质,我就把前几步去掉吧,咱们直接到第4步:4、权限问题iOS需要支持定位功能,否则iOS 13上无法自动获取wifi名字,这时需要手动输入wifi名字安卓需要开启存储,位置,和悬浮窗权限5、输入wifi密码首先确认,你要...

2020-10-28 13:20:38 471

原创 Universal Links使用指南

最近搞微信授权登录,在开放平台创建app时发现需要配置Universal Links,以前没这个玩应儿,就研究研究怎么搞。Universal Links是什么这个翻译过来就是通用链接。如果设备里安装了你的app,用户点击一个Universal Links链接时,会直接跳转到你的app,无需通过safari中间中转。如果设备里没有安装你的app,点击Universal Links时,会在safa...

2020-04-20 17:52:41 687

原创 pod update ,pod install ,pod outdated的使用

pod install在项目里创建Podfile文件,并且在该文件里录入了pod库及其版本, pod install会安装指定的pod库版本, 并且会把安装的pod库版本号记录到Podfile.lock文件里,下次再pod install时,pod库并不会更新pod库的版本,但是如果在Podfile里删除了或注释了某个库,pod install时就会删除该pod库,并且Podfile.lock...

2020-04-17 16:52:37 200

原创 CocoaPods版本升级

当你遇到下面的场景时就表示需要升级Cocoapods了the version of cocoapods used to generate the lockfile (1.9.1) is higher than the version of ...可以查看下自己的cocoapods版本号执行命令:pod --version结果:1.8.4查看cocoapods源执行命令:gem sour...

2020-04-10 15:00:33 314 1

原创 iOS UICollectionView的cell没有按预期展示问题

当你的cell没有按你设计的位置展示是可能原因有以下几点:使用了storyboard创建collectionView,并且collectionView的Estmate Size属性设置的是auto ,这个属性会导致页面总是乱的。需要把这个属性设置为None即可collectionView使用了storyboard创建了collectionView,但是没有对colle...

2020-03-31 15:55:18 216

原创 iOS NavigationBar与StatusBar的控制

NavigationBar透明控制NavigationBar默认是半透明的。isTranslucent属性true表示半透明,否则不透明。完全透明需要修改背景图和隐藏底部阴影线。代码如下//这个看到的NavigationBar就是透明的self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for:...

2020-03-28 11:18:15 137

原创 iOS edgesForExtendedLayouts用到的适配

iOS7以后,VC默认使用全屏布局,即view的origin.x是从屏幕的左上角开始计算的。在有navigationcontroller合uitabbarcontroller时,view也是默认占满整个屏幕的。edgesForExtendedLayoutedgesForExtendedLayout的作用是,告知view是在整个屏幕哪个方向延展。默认值是:UIRectEdgeAll,向上下左右四...

2019-03-27 17:56:18 97

原创 iOS 如何配置UIButton的title与Image的EdgeInsets

如何配置UIButton的title与Image的EdgeInsetsUIEdgeInsetsMake(top,left,bottom,right),它的作用是处理控件距离容器的上左下右的距离,可以为正值也可以是负值。下面的表格展示了正负值表现的效果UIEdgeInsetstopleftbottomright正值向下偏移向右偏移向上偏移向左偏移负值向上偏...

2019-03-26 20:26:20 302

原创 iOS开发博客

1、刘彦玮的博客2、iOS开发技术栈路线图3、蓝牙开发4、蓝牙开发及位运算5、app秒开优化6、蓝牙UUID7、官方文档8、蓝牙29、蓝牙常用的service 和 characteric10、iOS获取bluetooth mac地址方法11、iOS ANCS服务12、iWatch开发113、iWatch开发214、蓝牙知识整理15、架构相关16、蓝牙ANCS相关...

2019-03-22 18:16:23 72

原创 SourceTree + Gerrit

通过Mac 上的SourceTree向Gerrit服务推送代码通过sourcetree向gerrit服务推送资源时不能直接推送。因为在gerrit上需要审查代码,审查代码之后才会合并到master。不清楚gerrit工作流程的可以查阅下面的文档gerrit的工作流程及使用可以查阅这个文档可以通过git命令向gerrit推送,但是个人更喜欢sourcetreee可视化的操作,下面就介绍配置流程...

2019-03-13 18:54:53 1050

原创 SourceTree fatal:Authentication failed for xxxxx

在sourcetree上推送代码时,让我输入账号和密码,当时可能是输入了错误的账号和密码。推送时一直报:incorrect username or password. fatal: Authentication failed for xxxxx让人非常不爽,当时也不知道如何修改再次重新输入账号和密码,后来查到需要删除以前输入的账号。步骤如下:sourceTree 偏好设置->高级如图所...

2019-03-12 23:28:33 187

原创 iOS CNContactStore 与AddressBook

为了兼容iOS9以前与iOS9以后用到的通讯录fromework,做了这个封装,方便调用CNContactStore和AddressBook需要导入的头文件//ios9之前导入的框架#import <AddressBook/AddressBook.h>#import <AddressBookUI/AddressBookUI.h>//ios9之后导入的框架#imp...

2018-12-03 19:17:25 629

原创 iOS CLLocationManager 地理定位

鉴于地理位置的获取是异步的,所以在获取地理位置信息之后再通知当前用户使用,就封装了下。需要导入的头文件:import <CoreLocation/CoreLocation.h>涉及到的类CCLocationCClocationManagerCCLocationManager像个坐标的管理者。CCLocation可以理解为对坐标的一些信息的封装。封装的文件.h文件#imp...

2018-11-27 16:04:21 196

原创 Mac 系统安装tomcat

虽然Mac里自带了Apache,只能针对web和PHP服务,如果针对应用还是无法满足,于是就安装了tomcat。1、安装tomcat下载tomathttps://tomcat/apche.orgtomcat-apache8.0.png我这里下载的是tomcat8.0下载解压完之后,解压并修改名字为Tomcat8,然后拷贝到~/Library/中在Terminal(终端)...

2018-11-14 14:51:43 74

原创 Mac 系统启动Apache

Mac系统里自带有Apache服务,所以只需要启动或者停止来使用该服务即可1、查询Apache版本sudo apachectl -v看到的结果是Server version: Apache/2.4.34 (Unix)Server built: Aug 17 2018 16:29:432、启动Apache命令sudo apachectl startApache启动状态下再次启...

2018-11-14 14:29:44 193

原创 iOS-RunTime 动态添加属性和方法

1.1动态添加属性:#import "Person.h"#import <objc/runtime.h>const char *homeKey = "homeKey";@implementation Person@dynamic home;//通过运行时,动态添加属性- (void)setHome:(NSString *)home { [self willCh...

2018-09-21 12:21:16 93

原创 iOS NSKeyedArchiver数据序列化

数据序列化需要当前类遵循NSCoding协议,该协议有两个方法需要实现- (instancetype)initWithCoder:(NSCoder *)aDecoder;//反序列化数据- (void)encodeWithCoder:(NSCoder *)aCoder;//序列化数据举例:@interface Person : NSObject<NSCoding>@p...

2018-09-20 17:17:31 60

原创 iOS jenkins+cocoapods打包

本来只想贴一下网上的教程,结合自己遇到的问题分享一下。但貌似还是不少小伙伴对配置有疑问。其实我看网上的教程的时候,网上jenkins配置跟我要做的jenkins配置页面还是有区别的,导致我有点疑惑。不过后面测试下来发现,虽然界面不太一样,但是配置下来效果还是一样的。我问了一下OPS小伙伴,我做的jenkins的配置版本貌似是1.6.0版本的,具体是不是这个版本我没查,一会儿贴截图的时候,网友们注意...

2018-09-20 16:20:09 209

原创 iOS WKWebView

WKWebView是iOS8之后推出来的控件,目的是为了取代UIWebView。WKWebView相比UIWebView有这些优点:1、支持更多的html5特性2、支持高达60fps的滚动刷新率以及内置手势3、与safari相同的javascript引擎4、不会占用更多的内存下面来讲讲它的使用一、创建创建配置WKWebViewConfiguration *config = [[...

2018-09-18 12:18:22 77

原创 iOS Crash

不需要通过dSYM来符号化crash。注册监控:void InstallUncaughtExceptionHandler(void){ NSSetUncaughtExceptionHandler(&HandleException); }监控处理:void HandleException(NSException *exception){ ...

2018-09-10 16:43:56 44

原创 iOS Core Foundation与Cocoa Foundation

都为相同的功能提供接口CoreFoundation需要人工管理指针。一些方法:CFRetain,CFRelease,但是没有autorelease。CocoaFoundation里ARC模式下,自动管理内存,MRC模式下一些方法:retain,release,autorelease。CocoaFoundation指针与CoreFoundation转换,需要处理指向对象的所有权,ARC提供3个修...

2018-08-29 17:18:50 92

原创 iOS多线程-dispatch_set_target_queue

祭出demo在GCD里,我们通过dispatch_get_global_queue可以设置这个全局并发队列的优先级,但是通过dispatch_queue_create是无法设置队列的优先级的。怎么办呢?dispatch_set_target_queue(queue1, queue2)就可以把queue1的优先级修改为queue2的优先级,这样就解决了,自行创建的队列无法设置优先级的问题。看下...

2018-08-28 11:19:05 95

原创 iOS多线程-RunLoop

1、概念RunLoop与线程关联的,是一种事件处理环,用来安排和协调到来的事件,目的就是让其关联的线程在有事件到达时时刻保持运行状态,而当没有事件需要处理时进入睡眠状态从而节约资源,每一个线程都可以有一个RunLoop对象与之对应,并且是在第一次获取它是系统自动创建的,比如主线程关联的RunLoop,我们都知道程序的入口函数是main函数,下面是创建工程后Xcode自动生成的main.m文件的m...

2018-08-27 14:49:45 78

原创 iOS多线程-NSOperation&NSOperationQueue

祭出demoFoundation框架提供了NSOperation和NSOpeartionQueue 这两个面向对象的多线程类,这两个类与GCD的功能类似。NSOperation是对任务的封装,NSOperationQueue提供执行队列,自动实现多核并行计算,自动管理线程的生命周期。并发情况下也是底层提供线程池模型来管理。但是NSOperation提供了更多的可定制开发。使用NSOperatio...

2018-08-24 18:48:40 99

原创 iOS多线程-GCD

1、字面理解GCD全称Grand Central Dispatch,是苹果提供的一个多核编程的解决方案,在真正意义上实现了并行操作,而不是并发。GCD使用线程池模型来执行用户提交的任务,所以它比较节约资源,不需要为每个任务都重新创建一个新的线程,GCD不需要自行编写并行代码,而是自动进行多核的并行计算,自动管理线程的生命周期,如:使用线程池管理线程的创建和销毁,线程的调度,任务的调度等,用户只需...

2018-08-24 10:12:38 73

原创 iOS多线程-NSthread

祭出demo1、类方法及属性/*类属性,调用这个方法时,返回的是当前执行的线程*/@property (class, readonly, strong) NSThread *currentThread;/*该类方法会启动一个线程,并且启动线程,无需调用start。*/+ (void)detachNewThreadWithBlock:(void (^)(void))block A...

2018-08-23 15:31:04 84

原创 UIWebView白屏的监控&监控JS文件加载

祭出demo现在很多App都改用h5来处理了。使用过程中引发了很多白屏现象,很多种原因会引起白屏。比如网络不通,JS加载慢,加载失败,JS文件缺失等。就我测试看,h5没有本地化的,网络不通,页面白屏非常正常,这个都不用去监控了。JS文件不存在这种情况的可能性也不大,如果JS文件缺失导致白屏,已经构成了生产事故了。我在这里讲讲JS加载慢和JS加载失败导致的白屏现象。1、如何监控到JS文件 加...

2018-08-22 12:35:04 322

原创 信号量dispatch_semaphore_t创建网络同步请求

当我需要查询3000条大盘股票数据并进行分析的时候,需要一条一条的检索数据,不能乱了,3000条并发请求会导致手机网络卡死中断,所以想能有某个机制实现网络同步请求,这样我就能一条一条的获取数据并分析了。于是我找到了信号量:dispatch_semaphore_t1、 dispatch_semaphore有三个方法://创建信号量dispatch_semaphore_create//释放信...

2018-08-14 16:16:26 200

原创 iOS JSON解析出错(解析非标准JSON)

ios只能解析标准格式的json 比如 "key":"value"这种形式,如果出现不带双引号的key或只有单引号的value,就是解析出错。这点不像安卓,可以强转。在项目中,我就遇到了这种不标准的json字符串需要解析.我的想法是,把不带引号的key加上双引号,再把带有单引号的value转换成双引号的value。通过正则表达式实现查找并替换。这里有一点需要注意的是,再写正则的时候需要考虑到有...

2018-07-27 11:44:43 421

原创 RuntimeError - [Xcodeproj] Unknown object version.

在使用终端 pod install 时,提示错误如下RuntimeError - [Xcodeproj] Unknown object version.原因:这是因为你的 Xcode 版本和 CocoaPods 的版本不匹配,你需要更新你的 CocoaPods解决方法:终端输入命令 $gem install cocoapods --pre完成之后执行命令pod install即可...

2018-07-26 18:13:44 163

原创 vue 组件基础

祭出demo基础示例组件是可复用的 Vue 实例,所以它们与 new Vue 接收相同的选项,例如 data、computed、watch、methods 以及生命周期钩子等。仅有的例外是像 el 这样根实例特有的选项。组件的复用你可以将组件进行任意次数的复用:data必须是个函数当我们定义这个 <button-counter> 组件时,你可能会发现它的 data选项必须...

2018-07-22 03:47:56 66

原创 vue表单输入绑定

祭出demo 你可以用v-model 指令在表单 <input> 及<textarea> 元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。尽管有些神奇,但v-model 本质上不过是语法糖。它负责监听用户的输入事件以更新数据,并对一些极端场景进行一些特殊处理。基础用法v-model 会忽略所有表单元素的 value、checked、select...

2018-07-20 19:15:19 59

原创 vue Class与Style绑定

操作元素的 class 列表和内联样式是数据绑定的一个常见需求。因为它们都是属性,所以我们可以用 v-bind 处理它们:只需要通过表达式计算出字符串结果即可。不过,字符串拼接麻烦且易错。因此,在将 v-bind 用于 class 和 style 时,Vue.js 做了专门的增强。表达式结果的类型除了字符串之外,还可以是对象或数组。绑定 HTML Class对象语法数组语法绑定内联样式...

2018-07-19 17:07:51 46

原创 vue计算属性和侦听器

祭出demo计算属性<!--模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。 在模板中放入太多的逻辑会让模板过重且难以维护。例如:--> <div> {{ message.split('').reverse().join('') }} </div&...

2018-07-19 12:09:24 43

原创 vue模板语法

祭出demoVue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。所有 Vue.js 的模板都是合法的 HTML ,所以能被遵循规范的浏览器和 HTML 解析器解析。在底层的实现上,Vue 将模板编译成虚拟 DOM 渲染函数。结合响应系统,Vue 能够智能地计算出最少需要重新渲染多少组件,并把 DOM 操作次数减到最少。插值文本 {...

2018-07-18 19:44:51 48

原创 vue-router配置

祭出demo: vue-router配置demo 这篇文章介绍的vue-router配置是基于vue-cli脚手架初始化的项目来做的配置,vue-cli脚手架初始化项目请看这里:Vue.js开发环境搭建项目初始化完成之后,接下来看这几个步骤:配置main.js// The Vue build version to load with the `import` command// ...

2018-07-13 17:32:00 71

原创 Vuejs的生命周期函数

vue中所有的钩子函数:beforeCreate(创建前)created(创建后)beforeMount(载入前)mounted(载入后)beforeUpdate(更新前)updated(更新后)beforeDestroy(销毁前)destroyed(销毁后)vue官方生命周期图vue生命周期图生命周期代码及执行效果<script> ex...

2018-07-11 17:31:56 65

原创 Vuejs开发环境搭建

其他文章Vuejs的生命周期函数vue-router配置vue模板语法vue计算属性和侦听器vue Class与Style绑定vue表单输入绑定vue 组件基础准备工作:安装node.js下载并安装node.js如下图所示node.js.png安装完成之后通过命令:node -v查看当前安装的nodejs的版本 如我的是:v8.11.3安装npmnpm其实是Node....

2018-07-11 12:17:55 66

原创 cocospods创建私有库(共享库)

1. 创建自己的仓库我是在https://gitee.com(前身是:git.oschina.net)上建的pod库。比如我们创建的库名字为:FileSaveManager如图201806291541.png圈出部分是需要选中的选项创建成功之后的结果是这样的:201806291545.png2. 把仓库克隆到本地:cd /Users/xxx/MyGitCode/i...

2018-06-29 18:51:28 109

基于JSPatch的热修复demo

基于JSPatch的热修复demo,描述了三个处理场景

2017-02-08

DES加密工具

DES加密工具,方便实用 .适用于IOS平台

2015-09-07

RSA加密工具

请配合openssl文件, 上穿文件里有

2015-09-07

IOS openssl 支持arm64 i386

IOS openssl 支持arm64 i386。openssl,arm64,i386,IOS,RSA加密,RSA,加密

2015-09-06

空空如也

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

TA关注的人

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